のような文字列が1つあります010000200000, 000000200000, 020000200000
。このための正規表現を作成し、最初の2桁が01,00と02のみになることを確認したいと思います。残りの桁は、[0-6]からのみである必要があります。
この文字列にスペースや特殊文字は必要ありません。オンラインで入手できる正規表現のいくつかを試しましたが、正確には役に立ちませんでした。
誰かアイデアがあれば親切に助けてください。
これにより、要件でそれらが解析されます。
java.util.regex.Pattern.matches("0[012][0-6]+", "010000200000");
最初の文字は常に 0 で、その後に 0、1、または 2 のいずれかの文字が 1 つ続き、その後に 0 ~ 6 の範囲の少なくとも 1 つの文字が続きます。
わかりやすい
"0[012][0-6]*"
0 から始まり、次に 0、1、または 2、さらに 0 から 6 までの任意の桁数。
このチュートリアルをご覧になることをお勧めします。
文字列の桁数とセグメント数が固定されている場合は、次を使用できます
(?: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
。^...$
そうでない場合は、このパターンの前後に他に何もないことを確認するためにそれらを囲みます.
java.util.regex.Pattern.matches("0[0-2]{1}[3-6]{10}", "015453356543")
これはまさに正規表現を必要とするものです...はい?
どう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]+
問題ありません。