1

コードでこのパターンマッチングを使用する関数を複製しようとしています

^1000([.][0]{1,3})?$|^\d{1,3}$|^\d{1,3}([.]\d{1,3})$|^([.]\d{1,3})$

この正規表現では 0 から 1000 までの数値を使用できますが、

\b([0-9]{1,3}|1000)\b

ただし、更新では、-1000 から 1000 までの負の値と、範囲内の 2 つの小数値を許可する必要があり、元のパターンで把握する必要があるものを完全に失いました。

更新する必要がある範囲がさらにあるため、コードで使用されているパターンに関する説明をいただければ幸いです。

4

1 に答える 1

0

2 つの正規表現にはいくつかの違いがあります。第一に、元のものは数字が文字列のすべてである必要があります。2 番目のものは、文字列内の別の番号を検索します。例:

1000.00 USD

$数値は指定された形式ですが、アンカーが一致しないため、最初の正規表現はまったく一致しません。2 番目の正規表現は一致しますが、1000.

完全な文字列または部分文字列のみを照合するかどうかに応じて、これはおそらく探しているものです。

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

また

\b-?(?:\d{1,3}(?:[.]\d{1,2})?|1000(?:[.]0{1,2})?)\b

この動作デモでそれらをテストできます。

デモにも表示されている主な注意点は、先行ゼロが許可されていることです。

于 2012-11-11T20:57:41.117 に答える