优化荷兰电话号码 RegEx模式

这是我目前的正则表达式:

这是我目前的正则表达式:

^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9])((\s|\s?-\s?)?[0-9])([0-9])\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]\s?[0-9]$

这些是我的测试结果:

0612345678 true

06-12345678 true

+ 31612345678 true

+ 316-12345678 true

00316-12345678 true

061234567 false

06-12-345678 false

06-asdfghjk false

0331234567 true

0345-123456 false

+ 31331234567 true

+ 3133-1234567 true

003133-1234567 true

033123456 false

010-12-34567 假

035-asdfghj false

0345-123456 false

010-1234567 true

一切似乎都没问题,但有一个:-) 字符串需要匹配 (正确的电话号码) 但 RegEx 不匹配。这是 0345-123456。任何人都可以帮助我完成 (或优化) 我的 RegEx,以便所有上述测试都可以?

谢谢你的帮助!

1

模式中有可选的空白字符,但在示例数据中没有空白字符。

您可以编写一个模式来匹配列出的特定格式,并且仅对于匹配,您可以省略捕获组。

请注意,0345-123456是列表中的 2 倍。

^(?:(?:(?:\+|00)31|0)(?:\d-?\d{8}|\d\d-\d{7})|0\d{3}-\d{6})$

^字符串的开头

(?:非捕获组

(?:(?:\+|00)31|0)Match either+31or0031or0

(?:非捕获组

\d-?\d{8}匹配一个数字,可选-和 8 个数字

|Or

\d\d-\d{7}匹配 2 个数字-和 7 个数字

)关闭非捕获组

|Or

0匹配单个零

\d{3}-\d{6}匹配 3 位-6 位

)关闭外部非捕获组

$字符串结尾

Regex demo

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(579)
python-Binanceapi:APIError(代码=-1013):过滤器失败:LOT_SIZE
上一篇
如何找到与弹性搜索别名关联的所有索引 (elasticsearch get index aliases)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(78条)