【问题标题】:Regular expression detects phone numbers correctly but not when phone numbers are inline正则表达式正确检测电话号码,但在电话号码内联时无法检测
【发布时间】:2021-11-24 06:03:00
【问题描述】:

我正在尝试通过正则表达式从字符串中删除荷兰电话号码。要删除的电话号码可以包含空格、破折号和国家代码。

这些是要检测的通常使用的格式:

06-12345678
0612345678
0612345678
0101234567
010-1234567
010 1234567
010 12 34 567
010 12 34567
010 1234 567
+31612345678
0031123456789

到目前为止,我有:^(?:0|(?:\+|00) ?31 ?)(?:(?:[1-9] ?(?:[0-9] ?){8})|(?:6 ?-? ?[1-9] ?(?:[0-9] ?){7})|(?:[1,2,3,4,5,7,8,9]\d ?-? ?[1-9] ?(?:[0-9] ?){6})|(?:[1,2,3,4,5,7,8,9]\d{2} ?-? ?[1-9] ?(?:[0-9] ?){5}))$

当电话号码在单独的线路上时,这非常有效,但当它们像这样内联时则不行:

这是一个内联数字列表 06-12345678 gggf0612345678 06 12345678 0101234567 010-1234567 dfgfdg010 1234567

在这里测试:https://regex101.com/r/jOEFwS/2

我在这里查看过,但这是针对美国电话号码的:

如何更改表达式以捕获内联?

【问题讨论】:

    标签: regex phone-number


    【解决方案1】:

    您需要从开头删除^,在末尾删除$

    更多信息: 在 regex101 中有 m 标志,它使 ^ 和 $ 基于行,没有它 ^ 是字符串的开头,$ 是字符串的结尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      相关资源
      最近更新 更多