小数点以下は正常に動作する正規表現があります。下式で 私は整数を検証するために、小数点のマッチを削除する小数点なしの1000個の区切り文字の正規表現
^-?(\d*)(,\d{1,3})*(?:[,]|([.]\d{0,2}))?$
有効な一致:1,000 & 111、& -1000,00
無効マッチ: - 、1 & 1 ,,,,
小数点以下は正常に動作する正規表現があります。下式で 私は整数を検証するために、小数点のマッチを削除する小数点なしの1000個の区切り文字の正規表現
^-?(\d*)(,\d{1,3})*(?:[,]|([.]\d{0,2}))?$
有効な一致:1,000 & 111、& -1000,00
無効マッチ: - 、1 & 1 ,,,,
使用
^
は位置をアサート文字列の先頭で$
が文字列の最後に位置をアサートします。 -?
はオプションの-
と一致します。パート1が1〜3桁に一致し、パート2が0〜シーケンスと一致して,
に続いて3桁、パート3がパート1の代替品になります。& 2が結合され、ちょうど1桁に一致します。 (?:...|...)
が?
-で1つまたは0の出現で数値化されているため、数字のパターンはすべてオプションです。。
$
前,?
は、最後にオプションのコンマを許可する、削除する必要はありません場合は(あなたがcommentsで100,
を許可する必要が言及しました)。
私が推測できる限り答えました。より正確な表現が必要な場合は、さらにテストケースを追加してください。 –
与えられた式は、必要に応じてうまく動作する場合。 私はキープレスでユーザー入力を検証しているので、私の場合、ユーザーは有効な入力である - (マイナス)で入力を開始できます。 –
[OK]を、空の文字列を許可する必要があります。 '^ - ?(?:\ d {1,3}(?:、\ d {3})* | \ d +)?、?$'を使用してください。更新された回答を参照してください。 –
あなたの問題は何ですか?あなたの正規表現は意図したとおりに動作していませんか? – dquijada
与えられた式で小数点のマッチを削除したい、残りの部分を同じに保つ必要がある –
あなたの正規表現で 'DECIMAL_POINTS'とは何ですか? – anubhava