擅长:python、mysql、java
<p>可以使用正则表达式执行以下检查:</p>
<ol>
<li><p>如果输入包含非数字或不包含允许运算符的项,则会显示错误消息</p>
<pre><code>if not re.match(r'[\d.*/+\- ]+$', expression):
print("Bad3") # Characters exist that are not allowed
</code></pre>
<p>解释:^{cd1>}将只匹配数字、运算符和空格,^{{cd2>}表示允许其中一个或多个字符,并且^{{cd3>}匹配字符串的末尾。<code>re.match()</code>从字符串的开头开始,因此这意味着只允许这些字符。</p></li>
<li><p>如果用户输入一个数字,如.23或类似554的数字。如果小数点之前或小数点之后没有数字,则会显示另一个错误。(注意,类似于0.23的数字是可以的)。</p>
^{pr2}$
<p>解释:^{cd5>}在regex中匹配一个文字“.”字符。中间的^{cd6>}是一个交替,因此如果表达式在中间的任何一方匹配,regex将匹配。^{cd7>}表示前一个字符不是数字,并且^{cd8>}表示下一个字符不是数字,因此此regex表示“match a”。'不是以数字或匹配a来处理的',后面没有数字。”。</p></li>
<li><p>如果用户试图除以零,则显示错误。</p>
^{pr3}$
<p>说明:这与^{{cd9>}后面跟着任意数量的空格,然后匹配一个或多个^{cd10>}或^{{cd11>}字符,因此如果^{{cd12>}中的任何地方都有类似^{{cd13>}、^{cd14>}或^{cd15>}之类的字符,则此匹配。^{cd16>}表示下一个字符不能是数字或^{cd11>},这将阻止您匹配类似^{cd18>}之类的内容。</p></li>
</ol>