首页 > 解决方案 > 正则表达式与前面的字符中断

问题描述

我试图通过编译这个正则表达式从一组字符串中解析一个电话号码:

exp = re.compile(r'(\+\d|)(([^0-9\s]|)\d\d\d([^0-9\s]|)([^0-9\s]|)\d+([^0-9\s]|)\d+)')

这与“+1(123)-456-7890”之类的行成功匹配。但是,如果我在它前面添加任何内容,例如“P: +1(123)-456-7890”,它就会不匹配。我在 Regex 网站上进行了测试,但根本无法弄清楚这一点。

标签: pythonregex

解决方案


您可以考虑使用re.search(which scans) 而不是re.match,它只查看字符串的开头。您可以改为.*在开头添加 a 。


推荐阅读