1

私はたくさんの電話番号を持っていて、その番号が「おかしい」ように見えるかどうかを知りたいと思っています。つまり、数を繰り返した数です。例えば:

822222222
822333444
822222999

基本的に、822+同じ3つの数字の2つのセット。

私はJAVAでこれを行っていますが、これまでのところ、これがあります。

if (number.matches("^((822|654|611)\\d{3}\\d{3})$"))

これは明らかにこれらの数値と一致しますが、以下にも一致します。

822315487

これは特別な番号ではありません。(654と611の番号には注意を払わないでください。私もそれらを考慮する必要があります。)

どうすればこれに取り組むことができますか?同じ数に3回一致する正規表現を作成するにはどうすればよいですか?

4

2 に答える 2

5

主要な問題は、\d任意の数字と一致することです。つまり、同じ数字の3倍ではなく、任意の数字の3倍と言っていることになります。したがって、その数字をキャプチャしてから、2回繰り返す必要があります。

^822(\d)\1{2}(\d)\2{2}$
于 2012-11-26T14:29:52.287 に答える
4

最後の6桁は次のようになります。

(000|111|222|333|444|555|666|777|888|999){2}
于 2012-11-26T14:27:42.620 に答える