web-dev-qa-db-ja.com

この正規表現に負の10進数を含めるにはどうすればよいですか?

この正規表現で負の数値も一致させるにはどうすればよいですか?この正規表現は正の値で正常に機能しますが、負の値も許可するようにします。 -10、-125.5など.

^[0-9]\d*(\.\d+)?$

ありがとう

72
user1786107

-??は、 quantifier を追加して、先頭にオプションのハイフンを追加する必要があります意味1回または0回の出現):

^-?[0-9]\d*(\.\d+)?$

Rubularで次の値を確認しました。

10.00
-10.00

両方とも期待どおりに一致しました。

140
Mike Perrenoud

正規表現の例:

正の整数

^\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}$
108
KF2

最初に[0-9]が必要な理由はわかりません。

試してください:

^-?\d*(.\d+)?$

更新

1桁に数字があることを確認したい場合は、

^-?\d+(.\d+)?$
10
Andre Calil

Django urlに正規表現に関するいくつかの実験があります。

^(?P<pid>(\-\d+|\d+))$

この(\-\d+|\d+)部分に注目し、他を無視します。このセミコロン|は、正規表現でまたはを意味し、負の値はこの\-\d+部分と一致します、およびこの\d+への正の値

これにより、正と負の両方の整数が許可されます

ValidationExpression = "^-?[0-9]\d *(\ d +)?$"

1
Prajwal Rai

PDATED(13/08/2014):これは正数と負数に最適なコードです=)

(^-?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
1
Pacho Zuñiga

これにより、数字が続く場合にのみ、-または+文字が許可されます。

 ^([+-](?=\.?\d))?(\d+)?(\.\d+)?$
1
Ian Timothy

0または1トークンを追加するだけです:

^-?[0-9]\d*(.\d+)?$
0
BanksySan

数値の正規表現、オプションの小数点、オプションの負数:

^-?(\d*\.)?\d+$;

負の整数、小数、小数で負の場合に機能します

0
vivesh
^[+-]?\d{1,18}(\.\d{1,2})?$

正または負の10進数値を受け入れます。

0
Deepak Tambe

これは私のために働いた、 負数と正数の両方を許可する

 \-*\d+

C#を使用している場合:

Regex.Match(someString, @"\-*\d+").Value;
0
usefulBee

負数の場合のみ、これは完璧です。

^-\d*\.?\d+$
^(-?\d+\.)?-?\d+$

許可する:

23425.23425
10.10
100
0
0.00
-100
-10.10
10.-10
-10.-10
-23425.23425
-23425.-23425
0.234
0
alchemist