指数値が含まれていないことを確認するために 10 進数を照合するのに適した正規表現は何ですか?
助けてくれてありがとう。
「e-」、「e+」、「E-」、または「E+」が含まれている場合を除いて、何かに一致するようなことを言うことはできますか?
指数値が含まれていないことを確認するために 10 進数を照合するのに適した正規表現は何ですか?
助けてくれてありがとう。
「e-」、「e+」、「E-」、または「E+」が含まれている場合を除いて、何かに一致するようなことを言うことはできますか?
これは最短の解決策ではありませんが、整数の正しさを確認してください...
if( $num =~ /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/ ) {
#correct floating point
if( $num =~ /e/i ) {
#exponential
} else {
#not exponential
}
}
あなたが何を探しているのかは私には完全にはわかりませんが、CPAN から入手できるRegexp::Common
モジュール、具体的には を参照してRegexp::Common::number
ください。それはあなたが求めているものを提供するかもしれません。
それはコストフィールドであり、通貨記号、括弧、およびそのような他の文字を含めることができます
詳細な仕様がなければ、正規表現を使用した簡単な作業ではありません。私の意見では、入力の形式についてほとんど知らない場合、正規表現は不適切です。
OPの編集後に更新:
「e-」、「e+」、「E-」、または「E+」が含まれている場合を除いて、何かに一致するようなことを言うことはできますか?
それは例えば^(?!.*[eE][+-]).*$
(否定的な先読みを使用して) ですが、おそらくあなたが望む以上に一致するでしょう…</p>