我有一个字符串,其中包含比较运算符及其操作数的列表。从这个列表中,我想分离出只有'='运算符的操作数。
cellvalue = 'var1 == 5\n var2 >= 0.2\n var3 <= 0\n var4 = 5\n var5 = -3.0'
从这个字符串,我想要一个包含所有使用'='运算符的操作数的列表。
即list_req1 = ['var4','var5']
和list_req2 = ['5','-3.0']
。我如何使用正则表达式来做到这一点?
I have tried the following command:
all_signals = []
regx = '([a-zA-Z0-9_.]+)\s*(=)'
for m in re.findall(regx, cellvalue):
all_signals.append(m[0])
print(all_signals)
this returns: ['var1','var4','var5']
expected: ['var4','var5']
actual: ['var1','var4','var5']
答案 0 :(得分:0)
您可以像这样匹配由空格包围的单个equals运算符:
re.findall(r'\s=\s', value)
下一个更加复杂,还将捕获变量名称和数值分别为group(1)和group(2):
re.findall(r'\b(\w+)\s+=\s+([\d.]+)')