gpt4 book ai didi

python - 优化德国手机号码的正则表达式

转载 作者:行者123 更新时间:2023-12-04 14:39:07 24 4
gpt4 key购买 nike

我有一个从网站中提取德国手机号码的正则表达式:

[^\d]((\+49|0049|0)1[567]\d{1,2}([ \-/]*\d){7})(?!\d)

正如您在 demo 中所见它工作得很好。唯一不匹配的模式是:

+49 915175461907

请在链接的演示中查看更多示例。问题是 +49 后面的空格。

我需要如何更改当前的正则表达式模式才能匹配这些类型的模式?

最佳答案

更好的正则表达式是:

(?<!\d)(?:\+49|0049|0) *[19][1567]\d{1,2}(?:[ /-]*\d){7,8}(?!\d)

Updated RegEx Demo

变化:

  • (?<!\d) : 确保前一个字符不是数字
  • [19][1567] : 匹配 19后跟 [1567] 之一数字
  • {7,8} : 匹配给定结构的 7 或 8 次重复
  • 最好在字符类的第一个或最后一个位置保留未转义的连字符
  • 使用非捕获组避免捕获不需要的文本

关于python - 优化德国手机号码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69617304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com