python - 如何在文本字符串中查找电话号码

标签 python regex expression

这是我目前所拥有的:

import re
text = "If you want to call me, my old number was 905-343-2112 and it has 
been changed to 289-544-2345"
phone = re.findall(r'((\d{3})-(\d{3})-(\d{4}))', text)
for call in phone:
    print (call[0])

我猜我用于查找电话号码的正则表达式不是很好,因为如果我在打印调用时去掉方括号,它似乎会给我完整的号码,然后它会分解每组号码。我该如何润色这段代码

最佳答案

对电话号码段使用非捕获组:

phone = re.findall(r'((?:\d{3})-(?:\d{3})-(?:\d{4}))', text)
                       ^^        ^^        ^^

或者更好的是,去掉括号

phone = re.findall(r'\d{3}-\d{3}-\d{4}', text)

关于python - 如何在文本字符串中查找电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48859725/

相关文章:

javascript - 正则表达式与句子中的分号匹配

java - 无论内部是否有连字符,都删除短于 n 的单词

javascript - 如何在 Node.js 中使用我的 PHP 正则表达式?

c - 如何计算字符串表达式并返回 C 中的值?

python - 如何更改matplotlib中y轴上方sci符号的大小?

python - 您将如何将 cURL "GET"与基于 Python 的 REST API 一起用于网络编程?

python - MATLAB find 函数转换为 python - 3 输入参数版本

python - 在 Windows 和 UNIX 上使用 Pandas 从子目录读取 CSV

Python RegEx 以给定单词开头的整行

javascript - 将 S 分解为 Y 因此 X 的计算结果为 Y 或 -Y 的表达式?