我的运营商是:= , >= , <= , > , <
而我的表达就像下面的例子一样简单:
string1 = string2
string1=string2
string1= string2
string1 =string2
string1>=string2
string1 >=string2
string1 >= string2
string1 <string2
...
我需要将上述任何表达式拆分为三个词,并获得一个包含运算符和操作数的列表。例如
['string1', '>=', 'string2']
我尝试使用 re.split但没有得到合适的结果。任何建议将不胜感激。
请您参考如下方法:
下面是提取数据的代码,你可以把找到的元素放在一个列表中,你可以随意:
import re
lst = ['string1 = string2',
'string1=string2',
'string1= string2',
'string1 =string2',
'string1>=string2',
'string1 >=string2',
'string1 >= string2',
'string1 <string2']
pat = re.compile(r'(\w+)\s*([<>=]{1,2})\s*(\w+)')
for e in lst :
matches = pat.search(e)
print matches.group(1), matches.group(2), matches.group(3)
输出:
string1 = string2
string1 = string2
string1 = string2
string1 = string2
string1 >= string2
string1 >= string2
string1 >= string2
string1 < string2
