regex 具有一定边界条件的电话号码匹配

qxgroojn  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(109)

以6,7,8,9开头的10位数字或以0或+91开头的11位数字。如果数字作为单独的单词出现(两边用空格分隔,或一边用空格分隔,另一边用句号/逗号/换行符分隔,或两边用句号/逗号分隔,或一边用句号/逗号分隔,另一边用换行符分隔),而不是任何运行文本的一部分,则必须检查数字。

(?:[,\s]|^)(\+91[6-9]\d{9}|[6-9]\d{9}|0[6-9]\d{9})
valid number 
with comma 
8126131525,8126131526,08126131527,+918126131528 

with space 
8126131525 8126131526 08126131527 +918126131528

它应该匹配的示例:

8126131525,8126131526,08126131527,+918126131528 8126131525 8126131526 08126131527 +918126131528

不匹配的示例:

amit.81261215255
.81261315253
+9181261315258989
0812613152584
,+9181261315258989
81261215257.amit
amit@81261215255
06126131525@amit

我是regex新手

5fjcxozz

5fjcxozz1#

试试这个:

(?<!\w)(0\d|\+91|[6-9])\d{9}(?!\w)

请参见live demo
在每一个结尾的查找都是“不是一个单词字符”,这也匹配了输入的结尾。
它使用了一个在6-9范围内的+91 * 或 * 字符的交替。

jm2pwxwz

jm2pwxwz2#

这对我来说很好

`(?:[,\s\.]|^)(\+91[6-9]\d{9}|[6-9]\d{9}|0[6-9]\d{9})\b`g

相关问题