当前位置: 首页 > 面试题库 >

使用正则表达式从python中的自由格式文本中提取电话号码

澹台逸明
2023-03-14
问题内容

我必须从自由形式的文本中提取电话号码。

如何在python中使用reg-ex进行管理?

我找到了一个,以便提取电子邮件地址。https://gist.github.com/dideler/5219706

我已经通过使用电话号码正则表达式而不是电子邮件地址正则表达式实现了相同的方法,但是我无法获得输出。

def get_phoneNumber(text):
        phone_number = ""
        regex = re.compile("((\(\d{3,4}\)|\d{3,4}-)\d{4,9}(-\d{1,5}|\d{0}))|(\d{4,12})")

        for phoneNumber in get_phoneNumbers(text, regex):
                phone_number = phone_number + phoneNumber + "\n"

        return phone_Number

def get_phoneNumbers(s, regex):
        return (phoneNumber[0] for phoneNumber in re.findall(regex, s)

我该如何做呢?


问题答案:

此正则表达式与来自北美的典型电话号码匹配

匹配3334445555、333.444.5555、333-444-5555、3334445555,(333)4445555及其所有组合,例如333
4445555,(333)4445555或333444-5555。与国际符号+13334445555不匹配,但与+1 333
4445555中的国内部分匹配。

\(?\b[2-9][0-9]{2}\)?[-. ]?[2-9][0-9]{2}[-. ]?[0-9]{4}\b

资料来源:RegexBuddy

以下Python代码遍历所有匹配项

for match in re.finditer(r"\(?\b[2-9][0-9]{2}\)?[-. ]?[2-9][0-9]{2}[-. ]?[0-9]{4}\b", subject):
    # match start: match.start()
    # match end (exclusive): match.end()
    # matched text: match.group()

您期望什么模式?



 类似资料:
  • 问题内容: 我想从一般的HTML页面中提取所有文本(是否显示)。 我想 删除 任何HTML标记 任何JavaScript 任何CSS样式 是否有一个正则表达式(一个或多个)可以实现? 问题答案: 您不能真正用正则表达式解析HTML。太复杂了。RE根本无法正确处理部分。此外,某些常见的HTML之类的东西将在浏览器中作为适当的文本工作,但可能会使天真的RE感到困惑。 有了合适的HTML解析器,您会更快

  • 我们需要使用C#中的Regex. Replace()从电话号码中删除字符。允许的字符是(仅第一个字符)和[0-9]。应该过滤其他任何内容。 替换所有非数字的内容很好,但是我们怎么能只允许on作为第一个字符呢? 我们的正则表达式: 在这个数字上:它会删除空格和连字符,但不会删除23前面的。 知道如何解决这个问题吗?

  • 我使用jsoup连接到url并加载文档,然后使用正则表达式检查文档是否包含它。但它在某些情况下失败了。下面的代码从一些URL获取所有电话号码,但在其他URL中失败,例如http://www.wellclean.com/我在打印文件时检查了文件中包含的电话号码。 当我打印文档时,它包含以下格式的电话号码

  • 问题内容: 该字符串不应包含SSN或电话号码。下面的正则表达式不起作用,它仅接受xxxxxxxxx格式。 不应包含或或。 问题答案: 您可以尝试: 解释一下,如果我们阅读了您提供的查询: 我们可以读到:( 在我的顶部版本中,我改写为:。)。 保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式: 是零宽度的断言,因此它不消耗任何东西。即使匹配

  • 本文向大家介绍Java正则表达式匹配电话格式,包括了Java正则表达式匹配电话格式的使用技巧和注意事项,需要的朋友参考一下 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 Java正则表

  • 在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。 在这里使用《 Java正则表达式》一节中讲到的正则表达式支持的字符来实现,步骤如下。 (1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。 (2