s = '>50&<100'
s2 = '>30'
s3 = '<30'
s4 = '=10'
s5 = '!=10'
s6 = '>2|<5'
所以我的字符串应该是:
比较运算符(&lt;&gt; =!=) 后跟一个整数值 - &gt;我们称之为EXPRESSION
可选逻辑运算符(|&amp;) 然后是EXPRESSION
最好的方法是什么:
一个。验证输入字符串 b解析它,这样我就可以在有效的python中创建表达式
P.S 我可以使用正则表达式解决方案。我正在考虑创建一个语法并将其解析为树。
答案 0 :(得分:1)
您可以通过关注创建regex
,如评论中所述,如果您需要通用解决方案,则需要使用此模式:
s = '>\d+&<\d+'
s2 = '>\d+'
s3 = '<\d+'
s4 = '=\d+'
s5 = '!=\d+'
s6 = '>\d+|<\d+'
string_list=[s,s2,s3,s4,s5,s6]
rx = re.compile('|'.join(map(re.escape, string_list)))
然后使用正确的re
函数(例如:rx.match(string)
)!
<强> re.escape(字符串)强> 返回字符串,所有非字母数字反向;如果要匹配可能包含正则表达式元字符的任意文字字符串,这非常有用。
答案 1 :(得分:1)