我希望数字检测的正则表达式返回False

时间:2019-03-03 18:49:50

标签: python regex

检测6位数字和它们之间可能带有特定符号的意义(我正在练习电话号码检测,但这是一个简短的示例)

import re

text = TEST EXAMPLES EXPLAINED BELOW

print(re.compile(
    r'''
    \d{3}   # 3 digits
    [.-]*   # optional: symbol
    \d{3}   # 3 digits
    ''', re.VERBOSE
).search(text).group())

下面是两个示例,其中代码按预期返回 True

text = "A B 123.456 % &" # has a dot
> 123.456

text = " A B 123-456 % &" # has a hyphen
> 123-456

问题在于,如果数字块大于 6位数字,我希望它返回 False (在搜索过程中未找到任何内容),但它会找到模式通过忽略相同块中的其他所有内容。

请密切注意字符串

text = " A B 123456 % &" # 6 digits
> 123456

text = " A B 0123456 % &" # 7 digits, added a 0, expected False, returns True
> 012345

在最后一种情况下,如何使此代码返回False?

非常感谢您

0 个答案:

没有答案