0
^[0-9]\\d*(\\.\\d+)?$

上記の正規表現パターンが何を探しているのか、よくわかりません。私はそれを「0 から 9 までの数字以外のものを見つけ、1 桁の数字を 0 回以上見つけてから、小数点の 0 回または 1 回の後に少なくとも 1 つの数字が続くものを見つける」と解釈したくなりますが、わからない。

私の混乱の一部は、SCJP6 認定書では not 演算子が角括弧の内側に含まれているのに対し、ここでは外側にあるという事実に起因しています。また、正規表現に関しては、私は一般的に経験が浅いです。

誰か助けてくれませんか?[これは Java プログラムからのものです。上記は Java 固有のものですか?] ありがとうございます。

4

3 に答える 3

3

^文字列の開始

[0-9]一桁

\\d*任意の桁数 (0 ~無限大)

(\\.\\d+)?1 回またはまったくない: ドットの後に少なくとも 1 つの数字が続く

$文字列の終わり。

浮動小数点数または非浮動小数点数に一致する複雑な正規表現があります。

java.util.Patternクラスを見て、 Oracle Java Regex Tutorialを参照してください。

于 2013-01-07T11:10:40.100 に答える
2

It is looking a one or more digits, optionally followed by a . and one or more digits. It is confusing as it is needlessly complicated. It is the same as

^\\d+(\\.\\d+)?$

\d is defined as A digit: [0-9]

于 2013-01-07T11:11:59.167 に答える
1

" ^" 演算子が文字クラス " []" の外にある場合、それは入力の開始を示し、" $" は入力の終了を定義します。

したがって、あなたの説明は正しいですが、次のように変更する必要があります。

0 から 9 までの 1 桁を見つける...

正規表現の詳細については、このリンクをチェックしてください

于 2013-01-07T11:10:47.220 に答える