这是一个基本问题,但我已经搜索了一下,我仍然怀疑。
让我们以下面的正则表达式为例:
regex_example = re.compile('\d{10}\s\d-\d{3}-\d{3}-\d{4}')
现在让我们假设有一个字符串,其中可能包含与该正则表达式的全长匹配的子字符串,例如' 1234567890 1-123-456-7890' 1234567890 1-123-456-7890'或者它可能只包含与正则表达式的第一部分匹配的子字符串,例如' 1234567890 1-123'。
我想修改正则表达式(或使用其他解决方案),允许我匹配任何具有14个或更多char的子字符串,并部分或完全匹配正则表达式。所以我的代码会找到:
' 1234567890 1-1' (有14个字符,与正则表达式的开头相匹配) 要么 ' 1234567890 1-13' 要么 ' 1234567890 1-134'
等等,直到正则表达式的全长。
答案 0 :(得分:1)
您可以选择前14个字符后参与:
regex_example = re.compile(
'(\d{10}\s\d-\d(?:\d{0,2}(?:(?:-\d{0,3})?(?:-\d{0,4})?)?)?)')