0

のような文字列が1つあります010000200000, 000000200000, 020000200000。このための正規表現を作成し、最初の2桁が01,00と02のみになることを確認したいと思います。残りの桁は、[0-6]からのみである必要があります。

この文字列にスペースや特殊文字は必要ありません。オンラインで入手できる正規表現のいくつかを試しましたが、正確には役に立ちませんでした。

誰かアイデアがあれば親切に助けてください。

4

5 に答える 5

5

これにより、要件でそれらが解析されます。

java.util.regex.Pattern.matches("0[012][0-6]+", "010000200000");

最初の文字は常に 0 で、その後に 0、1、または 2 のいずれかの文字が 1 つ続き、その後に 0 ~ 6 の範囲の少なくとも 1 つの文字が続きます。

于 2012-12-07T13:28:59.107 に答える
3

わかりやすい

"0[012][0-6]*"

0 から始まり、次に 0、1、または 2、さらに 0 から 6 までの任意の桁数。

于 2012-12-07T13:29:57.120 に答える
1

このチュートリアルをご覧になることをお勧めします。

文字列の桁数とセグメント数が固定されている場合は、次を使用できます

(?:0[012][0-6]{10}, ){2}0[012][0-6]{10}

そうでない場合は、単に

(?:0[012][0-6]*, )*0[012][0-6]*

与えられた例が 3 つの別々の文字列であることを実際に意味している場合は、さらに簡単です。

0[012][0-6]{10}

また

0[012][0-6]*

これが使用するのは文字クラス繰り返しだけです。

これらは、 と一緒に使用した場合にのみ、好きなように動作することに注意してくださいPattern.matches^...$そうでない場合は、このパターンの前後に他に何もないことを確認するためにそれらを囲みます.

于 2012-12-07T13:29:45.497 に答える
0
java.util.regex.Pattern.matches("0[0-2]{1}[3-6]{10}", "015453356543")    

これはまさに正規表現を必要とするものです...はい?

于 2012-12-07T14:00:12.813 に答える
-1

どう0[0-2][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6][0-6]ですか?明らかに、12文字の固定長の文字列が必要だと思いましたが、そうでなければ0[0-2][0-6]+問題ありません。

于 2012-12-07T13:32:59.320 に答える