11

Java正規表現の問題があります。

1 つ以上の数字の後に 1 つの . 文字列で?

4

5 に答える 5

10
"^[\\d]+[\\.]$"

^     = start of string
[\\d] = any digit
+     = 1 or more ocurrences
\\.   = escaped dot char
$     = end of string   
于 2012-06-08T16:05:26.240 に答える
8

これがあなたの質問に対する答えだと思います:

String searchText = "asdgasdgasdg a121341234.sdg asdg as12..dg a1234.sdg ";
searchText.matches("\\d+\\.[^.]");

これは「121341234」と一致します。と「1234」。「12」ではありません。

于 2012-06-08T16:06:17.337 に答える
3
(\\d)+\\.

\\d任意の数字を
+表す

これを参照してください http://www.vogella.com/articles/JavaRegularExpressions/article.html

于 2012-06-08T16:02:46.573 に答える
1

正規表現では、メタ文字\dは整数を表すために使用されますが、Javaコードで正規表現として表すに\\dは、二重解析が実行されるため、メタ文字を使用する必要があります。

最初にそれを変換する文字列パーサー\d、次にそれを整数メタ文字として解釈する正規表現パーサー(これが私たちが望むものです)。

「1つ以上」の部分には、+貪欲な数量詞を使用します。

を表すために、二重解析シナリオのために.使用します。\\.

つまり、最終的には(\\d)+(\\.)

于 2012-06-08T16:34:58.057 に答える
0

\\d+)\\.

\\dは数字用、+は 1 つ以上、\\.はドット用です。.の前にバックスラッシュを付けずに記述すると、任意の文字に一致します

于 2012-06-08T16:05:09.640 に答える