猿问

如何在此正则表达式中包含负十进制数?

如何通过此正则表达式匹配负数?这个正则表达式可以很好地使用正值,但我希望它也允许负值,例如-10,-125.5等。


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

谢谢


缥缈止盈
浏览 604回答 3
3回答

慕无忌1623718

您应该在开头添加一个可选的连字符,方法是添加-?(?是一个表示一个或零次出现的量词):^-?[0-9]\d*(\.\d+)?$我用以下值在Rubular中验证了它:10.00-10.00两者均符合预期。

慕妹3146593

一些正则表达式示例:正整数:^\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}$日期(年月日,年/月/日等):^([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\.[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.0000.0000000001.10.011201.00000011234454.34357638.98701
随时随地看视频慕课网APP
我要回答