有没有办法在python3.4之前匹配一个完整的字符串(因为他们在这里引入了fullmatch()方法。)
例如。如果我有一个字符串' 12.345 '如果我想检查没有指数的浮点数,我使用模式:r'-?(?:\d+())?(?:\.\d+())?'
。但这种模式也适用于' 12.345abc '。
我怎样才能使第二个字符串不匹配' 12.345abc'?
谢谢!
答案 0 :(得分:0)
您可能希望将锚点与filter()
和lambda()
结合使用:
import re
strings = ['12.345', '12.345abc']
rx = re.compile(r'^\d+(\.\d+)?$')
numbers = list(filter(lambda x: rx.match(x), strings))
print(numbers)
# ['12.345']
这确保事后没有垃圾匹配。