1

これを許可する正規表現を手伝ってくれる人はいますか:

123.123
123.
1323.2
1.2312
1,23
123123,32
123,
123412

要約すると、小数点は1つだけで、最後の小数点になる可能性があります..しかし、ほとんどの場合、最初の小数点にはなりません。

しかし、これではありません:

12.323.323
1213..
12331...3123
.12313
,123132 
4

4 に答える 4

11

これはうまくいくはずです

^\d+[\.,]?\d*$

^文字列の先頭
\d+1 つ以上の数字
[\.,]?0 または 1 個の 10 進数またはコンマ
\d*0 個以上の数字
$文字列の終わり。

于 2013-03-18T11:35:11.983 に答える
2
\b\d+(\.|,)\d*\b

つまり:

a word boundary
a digit one or more times
a `.` or a `,`
a digit zero or more times
a word boundary

単語の境界は、数字の途中からの正規表現の一致を防ぐためにあります

于 2013-03-18T11:34:57.350 に答える
0

あなたの正規表現の私の修正: (\d+)(((.|,)\d+)|,)? 追加した '?' 最後に、ゼロ値で機能します

于 2014-07-18T22:16:27.187 に答える
0

これを試してみてください。あなたが言及したすべてのケースで機能します。

(\d+)(((\.|,)\d+)|,))

于 2013-03-18T11:43:45.673 に答える