我想要一个只检查包含逻辑表达式的正则表达式:0-9 == || !=&&等...
这是我到目前为止的尝试:
/^([ \-+><0-9])|(&&)|(==)|(\x7C\x7C)|(!=)|(<=)|(>=)$/i
我不确定它是如何工作的
答案 0 :(得分:3)
您只需为整行匹配一个表达式,请尝试以下操作:
/^(([ \-+><0-9])|(&&)|(==)|(\x7C\x7C)|(!=)|(<=)|(>=))+$/i
答案 1 :(得分:2)
我创建了this little fella。
^\h*(\-?)([0-9]+)\h*(&&|==|\x7C\x7C|!=|<=|>=)\h*([0-9]*)$
\h*
是可选的空格(空格,制表符)。
然后,下一个/ 第一个部分应该是麻木(对吗?)。
至少一个号码。可选择否定或肯定。
后面跟着更多可选的空格。
随后是可选的逻辑运算符。
后跟一个数字。
答案 2 :(得分:2)
与Andresch Serj解决方案没有太大区别,这是一个冗长的版本(可读且可编辑):
$pattern = '~
# subpattern definitions
(?(DEFINE)
(?<operator> && | [!<>=]?= | \x7C\x7C | [+-<>] )
(?<operand> -?[0-9]+ )
)
# main pattern
^ \h* \g<operand> \h* (?: \g<operator> \h* \g<operand> )* \h* $
~x';