私は、文字列が次のとおりかどうかを確認するためにパターン正規表現を実行しています。
次のような digit.digit.digit:
1.1.1
0.20.2
58.55541.5221
Javaでは、これを使用します:
private static Pattern pattern = Pattern.compile("\\d*.\\d*.\\d*", Pattern.CASE_INSENSITIVE);
しかし、20.20を過ぎると。試合で真を返してください。
グランドとは?
+の代わりに使用する必要があり*ます。*は 0 回以上の繰り返し、+は 1 回以上の繰り返しです。
.さらに、次の文字をエスケープすることを忘れないでください。
"\\d+\\.\\d+\\.\\d+"
*数量詞を使用しました。一致する0 or more repetition。
+一致する量指定子を使用してください1 or more repetition: -
Pattern.compile("\\d+\\.\\d+\\.\\d+");
また、任意の文字に一致dot(.)する で特別な意味を持つため、 your をエスケープする必要があります。Regexしたがって、.正規表現では、一致するだけでなく.、実際には任意の文字に一致します。
ドットをエスケープする必要があります。これは任意の文字に一致します。 Documentationを参照してください。
だからあなたが必要です
Pattern.compile("\\d+\\.\\d+\\.\\d+");
私も, に置き換えまし*た。+*
zzzzBov の提案は正しいです。また、をエスケープする必要がある.ため、正しい正規表現は次のようになります。
\\d+\\.\\d+\\.\\d+
これはあなたが必要とする基本的な正規表現です
\d+\.\d+(\.\d+)?
これは以下に一致します
20.20.20
1.1.1
1.1.1
0.20.2
58.55541.5221
20.20