正規表現では、1つまたは別のもの、あるいはその両方を(順番に)一致させる方法を知る必要があります。しかし、少なくとも1つはそこにある必要があります。
たとえば、次の正規表現
/^([0-9]+|\.[0-9]+)$/
一致します
234
と
.56
だがしかし
234.56
次の正規表現ながら
/^([0-9]+)?(\.[0-9]+)?$/
上記の3つの文字列すべてに一致しますが、不要な空の文字列にも一致します。
上記の3つの文字列すべてに一致するものが必要ですが、空の文字列には一致しません。それを行う簡単な方法はありますか?
アップデート:
以下のAndrewとJustinはどちらも、私が提供した単純化された例では機能しますが、(私が間違っていない限り)解決したいと思っていた実際のユースケースでは機能しないので、おそらく今すぐにそれを入れる必要があります。これが私が使用している実際の正規表現です:
/^\s*-?0*(?:[0-9]+|[0-9]{1,3}(?:,[0-9]{3})+)(?:\.[0-9]*)?(\s*|[A-Za-z_]*)*$/
これは一致します
45
45.988
45,689
34,569,098,233
567,900.90
-9
-34 banana fries
0.56 points
しかし、それは一致しません
.56
そして私はこれを行うためにそれが必要です。