私は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}