【发布时间】:2018-04-08 10:48:30
【问题描述】:
我一定遗漏了一些简单的东西 - 无论我做什么,我都无法让我的正则表达式匹配任何字符串:
[~] $ python2.7
Python 2.7.12 (default, Aug 13 2016, 19:37:25)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> s = " 405489796130 "
>>> regex = "\b[0-9]{15}|[0-9]{12}\b"
>>> for str in re.findall(regex, s):
... print(str)
...
>>> for str in re.finditer(regex, s):
... print(str)
...
>>> print("Hi")
Hi
>>>
正则表达式 "\b[0-9]{15}|[0-9]{12}\b" 应该明确匹配提供的字符串(该字符串包含 12 位数字的子字符串...)。
我什至将这段文本和正则表达式放入https://regexr.com/ 并且该网站的正则表达式找到了子字符串 - 为什么 Python 不能?
【问题讨论】:
-
我几乎不是正则表达式专家;我咨询documentation。
-
查看
print("\b")... 注意,反斜杠是 Python 中的 转义序列。使用 原始字符串 所以 Python 不会解释转义序列:print(r"\b")或使用双重转义:print("\\b") -
请查看我的答案以获得正确的解决方案,mypetlion 的解决方案不正确。我解释了原因。
标签: python regex python-2.7 python-2.x