2016-04-28 16 views
2

小数点以下は正常に動作する正規表現があります。下式で 私は整数を検証するために、小数点のマッチを削除する小数点なしの1000個の区切り文字の正規表現

^-?(\d*)(,\d{1,3})*(?:[,]|([.]\d{0,2}))?$ 

有効な一致:1,000 & 111、& -1000,00

無効マッチ: - 、1 & 1 ,,,,

+1

あなたの問題は何ですか?あなたの正規表現は意図したとおりに動作していませんか? – dquijada

+0

与えられた式で小数点のマッチを削除したい、残りの部分を同じに保つ必要がある –

+0

あなたの正規表現で 'DECIMAL_POINTS'とは何ですか? – anubhava

答えて

1

使用

​​

^は位置をアサート文字列の先頭で$が文字列の最後に位置をアサートします。 -?はオプションの-と一致します。パート1が1〜3桁に一致し、パート2が0〜シーケンスと一致して,に続いて3桁、パート3がパート1の代替品になります。& 2が結合され、ちょうど1桁に一致します。 (?:...|...)?-で1つまたは0の出現で数値化されているため、数字のパターンはすべてオプションです。

$,?は、最後にオプションのコンマを許可する、削除する必要はありません場合は(あなたがcomments100,を許可する必要が言及しました)。

regex demo

+0

私が推測できる限り答えました。より正確な表現が必要な場合は、さらにテストケースを追加してください。 –

+0

与えられた式は、必要に応じてうまく動作する場合。 私はキープレスでユーザー入力を検証しているので、私の場合、ユーザーは有効な入力である - (マイナス)で入力を開始できます。 –

+0

[OK]を、空の文字列を許可する必要があります。 '^ - ?(?:\ d {1,3}(?:、\ d {3})* | \ d +)?、?$'を使用してください。更新された回答を参照してください。 –

関連する問題