この正規表現で負の数も一致させるにはどうすればよいですか?この正規表現は正の値で正常に機能しますが、-10、-125.5などの負の値も許可する必要があります。
^[0-9]\d*(\.\d+)?$
ありがとう
この正規表現で負の数も一致させるにはどうすればよいですか?この正規表現は正の値で正常に機能しますが、-10、-125.5などの負の値も許可する必要があります。
^[0-9]\d*(\.\d+)?$
ありがとう
回答:
最初にオプションのハイフンを追加する必要があります-?
(これ?
は、1回または0回の出現を意味する数量詞です)。
^-?[0-9]\d*(\.\d+)?$
Rubularで次の値を使用して検証しました。
10.00
-10.00
両方とも期待どおりに一致しました。
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
いくつかの正規表現の例:
正の整数:
^\d+$
負の整数:
^-\d+$
整数:
^-?\d+$
正の数:
^\d*\.?\d+$
負の数:
^-\d*\.?\d+$
正の数または負の数:
^-?\d*\.{0,1}\d+$
電話番号:
^\+?[\d\s]{3,}$
コード付きの電話:
^\+?[\d\s]+\(?[\d\s]{10,}$
1900- 2099年:
^(19|20)[\d]{2,2}$
日付(dd mm yyyy、d / m / yyyyなど):
^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$
IP v4:
^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$
なぜ最初にそれが必要なのかわかりません[0-9]
。
試してみてください:
^-?\d*(\.\d+)?$
更新
1の場所に数字があることを確認したい場合は、
^-?\d+(\.\d+)?$
^-?\d+(\.\d+)?$
、その場合は機能するはずです
更新(2014年8月13日):これは正と負の数に最適なコードです=)
(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}
私はこの番号で試してみましたが、うまくいきました:
-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701
-*
する-?
ため、に変更し-------------
ます。
django urlの正規表現についていくつかの実験があります。これには、負の数から正の数までが必要です。
^(?P<pid>(\-\d+|\d+))$
この(\-\d+|\d+)
部分に焦点を当て、他の部分を無視しましょう。このセミコロン|
は正規表現のORを意味し、負の値はこの\-\d+
部分と一致し、正の値はこれに一致します\d+
0または1のトークンを追加するだけです。
^-?[0-9]\d*(.\d+)?$
負の数の場合のみ、これは完璧です。
^-\d*\.?\d+$