我需要一个正则表达式来匹配0到100之间的任何数字,包括十进制数字示例: 我的表达应该匹配1,2,2.3,40,40.12,100,100.00这样..提前谢谢?
答案 0 :(得分:2)
假设你必须允许一个主要标志,你最好写
if ( /(?<![-+.\d])([-+]?\d+(?:\.\d*)?(?![-+.\d])/ and $1 >= 0 and $1 <= 100 ) { .. }
但如果您强制使用正则表达式,那么您需要
if ( /(?<![-+.\d])(([-+]?(?:100|\d\d)(?:\.\d*)?(?![-+.\d])/ ) { .. }
这些模式可能比必要的更复杂,因为它们允许在字符串中出现 where 的数字。如果您只是检查整个字符串以查看它是否符合条件,那么它可能会更短
答案 1 :(得分:0)
这样可行:
(100(\.0+))|([0-9]{1,2}(\.[0-9]+)?)
匹配“100”(可选点加一个或多个零)或一个或两个数字,可选地后跟一个点和至少一个数字。
答案 2 :(得分:0)
EDITED !!!
这个问题比我最初意识到的要困难得多。经过一些努力,我制作了一个没有错误的新正则表达式。享受。
/(?<!\d)(?<!\.)(100(?:(?!\.)|(?:\.0*+|\.))(?=\D)|[0-9]?[0-9](?:\.|\.[0-9]*+)?(?=[\D]))/
此模式将以$ 1
进行捕获