電話番号からダブル、トリプレット、テトラなどを取得するには正規表現が必要です
以下は例です、番号は1001055522ですそれは私を返すはずです
group Numbers
=============================
Doubles 00
22
Triplets 555
この正規表現を使用するRegex.Matches
と、正確な double または triple が生成されます (より長い連続したシーケンスの一部ではありません)。これは量指定子の貪欲さによるものです。
(\d)\1+
さて、あとは紐の長さの確認と数え方ですが… お任せします。
ダブルスを見つけるには、後方参照を使用します。
(.)\1
これがデモです:http://regex101.com/r/zC3fM1
トリプレットを見つけるには、後方参照を繰り返すだけです。
(.)\1{2}
これがデモです:http://regex101.com/r/cJ4lJ8
数に関係なく、すべての連続する番号を照合する場合は+
、後方参照で使用します。
(.)\1+
これがデモです:http://regex101.com/r/pL8sB3
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