/ /小数点以下2桁までの数値と一致する正規表現-java、android、regex、numbers

小数点以下2桁までの正規表現 - java、android、regex、numbers

私はjava / androidで簡単なコードを書いています。

一致する正規表現を作成したい:

0
123
123,1
123,44

コンマの後の2桁目以降をすべてスライスします。

私の最初のアイデアは、そのようなことをすることです:

^d+(?(?=,{1}$)|,d{1,2})

^ - from begin
d+ match all digits
?=,{1}$ and if you get comma at the end
do nothin
else grab two more digits after comma

しかし、「コンマなしの数字とは一致しません。正規表現の何が問題なのかわかりません」。

回答:

回答№1の場合は3

あなたは使用することができます

^(d+(?:,d{1,2})?).*

と置き換える $1。を参照してください 正規表現のデモ.

詳細

  • ^ -文字列の開始 -(d+(?:,d{1,2})?) -グループ1の一致のキャプチャ:
    • d+ -1桁以上
    • (?:,d{1,2})? -オプションのシーケンス:
      • , - コンマ
      • d{1,2} -1桁または2桁
  • .* -一致しており、キャプチャされていないため、削除される行の残りの部分。

回答№2については2

ここに:

,{1}

言う:ちょうど1つの「、」

試してください:

,{0,1}

例えば。


回答№3の場合は1

基本的な正規表現: [0-9]+[, ]*[0-9]+

最小最大長を指定する場合:

[0-9]{1,3}[, ]*[0-9]{0,2}