如何通过这个正则表达式匹配负数?这个正则表达式正值正值,但我希望它也允许负值,例如-10,-125.5等.
^[0-9]\d*(\.\d+)?$
Run Code Online (Sandbox Code Playgroud)
谢谢
Mik*_*oud 146
您应该在开头添加一个可选的连字符-?(通过添加(?是一个量词表示一次或零次出现):
^-?[0-9]\d*(\.\d+)?$
Run Code Online (Sandbox Code Playgroud)
我用Rubular在这些值中验证了它:
10.00
-10.00
Run Code Online (Sandbox Code Playgroud)
两者都符合预期.
KF2*_*KF2 111
一些正则表达式示例:
正整数:
^\d+$
Run Code Online (Sandbox Code Playgroud)
负整数:
^-\d+$
Run Code Online (Sandbox Code Playgroud)
整数:
^-?\d+$
Run Code Online (Sandbox Code Playgroud)
正数:
^\d*\.?\d+$
Run Code Online (Sandbox Code Playgroud)
负数:
^-\d*\.?\d+$
Run Code Online (Sandbox Code Playgroud)
正数或负数:
^-?\d*\.{0,1}\d+$
Run Code Online (Sandbox Code Playgroud)
电话号码:
^\+?[\d\s]{3,}$
Run Code Online (Sandbox Code Playgroud)
电话代码:
^\+?[\d\s]+\(?[\d\s]{10,}$
Run Code Online (Sandbox Code Playgroud)
1900-2099年:
^(19|20)[\d]{2,2}$
Run Code Online (Sandbox Code Playgroud)
日期(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])$
Run Code Online (Sandbox Code Playgroud)
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}$
Run Code Online (Sandbox Code Playgroud)
And*_*lil 10
我不知道为什么你首先需要它[0-9].
尝试:
^-?\d*(.\d+)?$
Run Code Online (Sandbox Code Playgroud)
更新
如果你想确定你在那个地方有一个数字,那么使用
^-?\d+(.\d+)?$
Run Code Online (Sandbox Code Playgroud)
在前面添加"-" minus后应该可以完成工作。? quantifier[0-9] expression
-?[0-9]
以供参考
^b-^ quantifier匹配任何以“b”开头的字符串c?-? quantifier匹配 0 或 1 次出现的“c”[0-9]- 查找之间的任何字符[] brackets\d- 查找一个数字0-9d*-* quantifier匹配零次或多次出现的“d”\.- 匹配一个"." characterz+-+ quantifier匹配一次或多次出现的“z”e$-$ quantifier匹配任何以“e”结尾的字符串希望,这将有助于理解问题中发布的正则表达式。