これを許可する正規表現を手伝ってくれる人はいますか:
123.123
123.
1323.2
1.2312
1,23
123123,32
123,
123412
要約すると、小数点は1つだけで、最後の小数点になる可能性があります..しかし、ほとんどの場合、最初の小数点にはなりません。
しかし、これではありません:
12.323.323
1213..
12331...3123
.12313
,123132
これはうまくいくはずです
^\d+[\.,]?\d*$
^
文字列の先頭
\d+
1 つ以上の数字
[\.,]?
0 または 1 個の 10 進数またはコンマ
\d*
0 個以上の数字
$
文字列の終わり。
\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
単語の境界は、数字の途中からの正規表現の一致を防ぐためにあります
あなたの正規表現の私の修正: (\d+)(((.|,)\d+)|,)? 追加した '?' 最後に、ゼロ値で機能します
これを試してみてください。あなたが言及したすべてのケースで機能します。
(\d+)(((\.|,)\d+)|,))