2

次の正規表現があります。[\-+]?[0-9]*[02468]$ 正または負の偶数に一致しますが、「0」にも一致しないようにします。どうすればこれを達成できますか? 「前に数字がある場合、最後の数字としてのみ0に一致する」を正規表現言語に翻訳する方法が見つかりません。

ありがとう。

4

3 に答える 3

2

たぶんこれ? [\-+]?([0-9]*[1-9][0-9]*[02468]|[2468])$

編集 これにより、両方の交替で先行ゼロが許可されます。

[-+]?0*([1-9][0-9]*[02468]|[2468])$

于 2012-07-20T19:50:59.313 に答える
0

私は次のことを思いつきました。[-+]?([1-9][0-9]*[24680]|[2468])$

先行ゼロを回避しているように見え、ルックバックを使用していません。私が間違っている場合は修正してください。

于 2012-07-20T19:51:23.257 に答える
0

これにより、0 で始まる数字が削除されます。

[\-+]?[^0][0-9]*[02468]$

したがって、除外され0ます。

欠点は、それが機能しないことです012

したがって、数値に先行ゼロがない限り、それは解決策になる可能性があります。


ただし、ここで正規表現の必要性がわかりません (コンテキストを指定することはありません)。

(可能であれば)数値がゼロ以外であるかどうかを確認することをお勧めします。

( num != 0 && num % 2 == 0 )

于 2012-07-20T19:51:26.597 に答える