我测试了以下正则表达式:
r"([\d\s]{1,})\b(\s?[€]\s?)([\d]{1,})"
http://pythex.org上的实际上有效。该模式用于识别价格,其中包含欧元符号,如40€50
。
见此截图:
然后在python中,我测试它是这样的:
regex3 = r"([\d\s]{1,})\b(\s?[€]\s?)([\d]{1,})"
line = "37€00"
pct_re = re.compile(regex3)
print(pct_re.search(line))
并打印None
。至于这种模式:r"([\d\s]{1,},?[\d]{1,}?)\b(\s?[€])"
,Iit适用于Pythex和python。 (这个正则表达式确认价格为37.50欧元,最后是欧元符号)。它实际上打印的类似“匹配+对象引用”但不是“无”!!
我在stackoverflow上看到过类似的线程,人们建议使用re.search
代替re.match
,因为匹配只在开头匹配,这就是我所做的。
我确定这里的错误是愚蠢的,但如果你能提供一些帮助,请。
答案 0 :(得分:0)
我不知道为什么你需要使用compile
;这很好用:
regex3 = r"([\d\s]{1,})\b(\s?[€]\s?)([\d]{1,})"
line = "37€00"
print re.search(regex3, line)
返回<_sre.SRE_Match object>
。在使用之前无需compile
正则表达式。