我有一个正则表达式(regex)匹配德国手机号码。
表达式如下所示:[^\d]((\+49|0049|0)\s?(1|9)[1567]\d{1,2}([ \-/]*\d){7,8})(?!\d)
它涵盖的数字格式如下所示,以及更多:
+4915368831169
+49 15207955279
+49 1739341284
正如您在regex demo中所看到的,正则表达式涵盖了所有可能的格式,但不幸的是,与0 910 0 910 -77 -1
和0 910 0 910 -75 0
都匹配,这两个格式不是德国移动号码。
如何修改正则表达式,使正则表达式仍然匹配演示中提供的德国移动电话号码,但不匹配给定的数字序列?
1条答案
按热度按时间ilmyapht1#
您可以匹配一个数字6-7次,后跟可选的空格
/
或-
,然后匹配负前瞻之前末尾的数字。对于捕获组:
Regex demo
不使用捕获组:
Regex demo