我是python新手,我一直在使用正则表达式进行匹配,等等。现在我面临一个小问题,我有一个字符串str = "vans>=20.09 and stands == 'four'"
。我想要比较运算符之后的值,我使用正则表达式来提取,我给出的模式在提取int和string之类的值时运行良好,但它没有提取浮点值。什么是最好的模式,以便正则表达式提取所有类型的值(int、float、string)
我的代码:
import re
str = "vans>=20.09 and stands == 'four'"
rx = re.compile(r"""(?P<key>\w+)\s*[<>=]+\s*'?(?P<value>\w+)'?""")
result = {m.group('key'): m.group('value') for m in rx.finditer(str)}
其中:
{'vans': '20', 'stands': 'four'}
预期产出:
{'vans': '20.09', 'stands': 'four'}
识别比较运算符时也存在问题。以下内容应足以满足所有用例。但是,需要注意的是,对于小数点后没有数字的数字,将只选择小数点前的值
您可以使用
\.
扩展第二个\w
组以包括点这应该可以很好地工作,像
12.34.56
这样的字符串也将作为值进行匹配相关问题 更多 >
编程相关推荐