这是一个基本问题,但我进行了一些搜索,但仍然有疑问。
让我们以下面的正则表达式为例:
regex_example = re.compile('\d{10}\s\d-\d{3}-\d{3}-\d{4}')
现在让我们假设有一个字符串可能包含与该正则表达式的完整长度匹配的子字符串,例如“1234567890 1-123-456-7890”,或者它可能只包含与正则表达式的第一部分匹配的子字符串,例如例如“1234567890 1-123”。
我想修改正则表达式(或使用其他解决方案),允许我匹配任何具有 14 个或更多字符的子字符串,并部分或完全匹配正则表达式。所以我的代码会发现:
'1234567890 1-1'(有 14 个字符并匹配正则表达式的开头) 或者 '1234567890 1-13' 或者 '1234567890 1-134'
依此类推,直到正则表达式的完整长度。
最佳答案
您可以将前 14 个字符后的部分设为可选:
regex_example = re.compile(
'(\d{10}\s\d-\d(?:\d{0,2}(?:(?:-\d{0,3})?(?:-\d{0,4})?)?)?)')
关于python - 如何完全或部分匹配 python 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449092/