次の正規表現があります。[\-+]?[0-9]*[02468]$
正または負の偶数に一致しますが、「0」にも一致しないようにします。どうすればこれを達成できますか? 「前に数字がある場合、最後の数字としてのみ0に一致する」を正規表現言語に翻訳する方法が見つかりません。
ありがとう。
次の正規表現があります。[\-+]?[0-9]*[02468]$
正または負の偶数に一致しますが、「0」にも一致しないようにします。どうすればこれを達成できますか? 「前に数字がある場合、最後の数字としてのみ0に一致する」を正規表現言語に翻訳する方法が見つかりません。
ありがとう。
たぶんこれ?
[\-+]?([0-9]*[1-9][0-9]*[02468]|[2468])$
編集 これにより、両方の交替で先行ゼロが許可されます。
[-+]?0*([1-9][0-9]*[02468]|[2468])$
私は次のことを思いつきました。[-+]?([1-9][0-9]*[24680]|[2468])$
先行ゼロを回避しているように見え、ルックバックを使用していません。私が間違っている場合は修正してください。
これにより、0 で始まる数字が削除されます。
[\-+]?[^0][0-9]*[02468]$
したがって、除外され0
ます。
欠点は、それが機能しないことです012
。
したがって、数値に先行ゼロがない限り、それは解決策になる可能性があります。
ただし、ここで正規表現の必要性がわかりません (コンテキストを指定することはありません)。
(可能であれば)数値がゼロ以外であるかどうかを確認することをお勧めします。
( num != 0 && num % 2 == 0 )