检测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?
非常感谢您