python - 如何完全或部分匹配 python 中的正则表达式

标签 python regex

这是一个基本问题,但我进行了一些搜索,但仍然有疑问。

让我们以下面的正则表达式为例:

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})?)?)?)')

RegEx Demo

关于python - 如何完全或部分匹配 python 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449092/

相关文章:

python - 如何在 Python 中使用 Nettle?

python - 对称色图 matplotlib

python - 调试 Python 导入失败 (ModuleNotFoundError)

javascript - 判断字符串是否为回文

regex - 在 Linux 中,如何查找包含字符串文字的所有文件,即使该字符串是复合词的一部分?

regex - 修正正则表达式

python - django 如何在 view.py 中使用多线程?

python - 无法从 QWidget 更改 QSlider 的值

javascript - 使用 RegEx 和 .replace 替换用户输入的文本?

具有非常具体规则的用户名的正则表达式