我需要正则表达式从电话号码中检索没有双打、三连音、四连音等
以下是示例,数字是 1001055522 它应该返回我
group Numbers
=============================
Doubles 00
22
Triplets 555
此正则表达式与一起使用时Regex.Matches
将产生精确的双精度或三重精度(不是较长连续序列的一部分)。这是由于量词的贪婪。
(\d)\1+
好吧,剩下的就是检查字符串的长度并计数......我就交给你了。
要查找双打,请使用反向引用:
(.)\1
这是一个演示:http ://regex101.com/r/zC3fM1
要找到三元组,只需重复反向引用:
(.)\1{2}
这是一个演示:http ://regex101.com/r/cJ4lJ8
如果你想匹配所有连续的数字,不管有多少,然后+
在反向引用上使用:
(.)\1+
Dim n = "1001055522"
Dim doubles = System.Text.RegularExpressions.Regex.Matches(n, "(.)\1")
Dim triples = System.Text.RegularExpressions.Regex.Matches(n, "(.)\1{2}")
'Doubles
For Each d As System.Text.RegularExpressions.Match In doubles
Console.WriteLine(d.Value)
Next
'Triples
For Each t As System.Text.RegularExpressions.Match In triples
Console.WriteLine(t.Value)
Next