Python2.7是完全匹配的替代品

时间:2017-04-12 20:41:11

标签: regex python-2.7 match

有没有办法在python3.4之前匹配一个完整的字符串(因为他们在这里引入了fullmatch()方法。) 例如。如果我有一个字符串' 12.345 '如果我想检查没有指数的浮点数,我使用模式:r'-?(?:\d+())?(?:\.\d+())?'。但这种模式也适用于' 12.345abc '。 我怎样才能使第二个字符串不匹配' 12.345abc'? 谢谢!

1 个答案:

答案 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']

这确保事后没有垃圾匹配。