【问题标题】:Using regex to find (and replace) phone number extensions (Python)使用正则表达式查找(和替换)电话号码扩展(Python)
【发布时间】:2019-11-15 19:44:55
【问题描述】:

我目前正在尝试从 pandas 系列中查找电话号码扩展,例如“分机:123”。分机号可以单独位于单元格中(如以前一样)或在电话号码之后,例如123 456 789 / 分机:4502。

扩展名也可以是不同的格式,例如Ex.430(缺少字母t,标点符号后没有空格。因此,我想找到系列中所有有1-3个字母,后跟零的序列或多个符号,零个或多个空格,后跟 2 到 6 个数字。

最好,我也会用正确的格式替换它们,即 Ext: 32(最多可以是 6 个数字)

到目前为止,这是我的正则表达式:

({'\D{1,3}\W*\s*\d{2,6}]'

我也使用了其他变体,但那些也不起作用。

如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

  • 这些是美国的电话号码吗?
  • 电话号码来自世界各地。
  • 数字有多干净?换句话说,还有破折号、句号和括号吗?
  • 你可以做一些微调,例如将\D 替换为[^\d \n]
  • 此时数字已被清除。仅保留数字、空格和正斜杠

标签: python regex


【解决方案1】:

您可以将列拆分为字母字符(加上冒号)。

df['phones'].str.split(r'[A-Za-z:]+\.?', expand=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多