Regex以排除一系列数字
我试图排除Regex以排除一系列数字,regex,Regex,我试图排除200以下的所有十进制数。例如: 50.123 invalid 150.103 invalid 205.111 valid 使用([0-9][0-9])|(1[0-9][0-9])\.*reg表达式,我得到以下结果: 50.123 valid but should be invalid 150.103 invalid 205.111 valid 有人能告诉我为什么任何小于100的十进制数都是有效的吗? /(?<!\d) (\d{2}|1\d{2})\.\d+/g \d{2}
200
以下的所有十进制数。例如:
50.123 invalid
150.103 invalid
205.111 valid
使用([0-9][0-9])|(1[0-9][0-9])\.*
reg表达式,我得到以下结果:
50.123 valid but should be invalid
150.103 invalid
205.111 valid
有人能告诉我为什么任何小于100的十进制数都是有效的吗?
/(?<!\d)
(\d{2}|1\d{2})\.\d+/g
\d{2}:2位数字
(?避免205.111中的05.111匹配
我尝试了你的正则表达式,但它有问题,所以我想出了另一个解决方案。你可以使用这个正则表达式来验证你下面的所有数字
200
:
^[01]?[0-9]{1,2}(?:\[0-9]+)$
正则表达式详细信息:
:开始^
:匹配[01]?
或0
或不匹配1
:匹配1或2位数字[0-9]{1,2}
:可选地匹配(?:\.[0-9]+)?
,后跟1+位
:结束$
- 谢谢您的回答(所有答案都正确无误)
波希米亚人也正确地说:
它以
\.*
结尾,但应该以\..*
或更准确地说是\.\d*
因此,我将正则表达式编辑为以下内容,现在可以正常工作:
([0-9][0-9]\.\d*)(1[0-9][0-9]\.\d*)
考虑到您希望排除200以下的数字和显示无效示例的示例数据,我认为您需要:
^(?:[2-9]\d{2,}|1\d{3,})(?:\.\d+)?$
在线查看
-启动字符串锚定^
-第一个非捕获组:(?:
-匹配编号范围为2-9,后跟2+位[2-9]\d{2,}
-或:|
-一个1,后跟3+位1\d{3,}
-关闭非捕获组)
-打开第二个非捕获组:(?:
-一个文字点,后跟1+位\。\d+
-关闭第二个非捕获组并将其设置为可选)?
-结束字符串锚定$
^[01]?[0-9]{1,2}(?:\[0-9]+)?$
你的正则表达式有一个错误:它以\.*
结尾,但应该以\..*
或者更准确地说是\.\d*
结尾。你的正则表达式需要输入任意数量的点,而不是一个点,然后是任意数量的字符/数字。@anubhava是的,你的正则表达式对我来说工作得很好,谢谢你的帮助,人们投票赞成删除它。@Should重复项是否被删除?通常情况下,否:大多数重复项都会保留。将同一问题的多个不同措辞的副本作为搜索素材是很有用的,因为寻找答案的人可能也会使用不同的措辞。这是否回答了您的问题?205.111中的05.111是否与此正则表达式匹配?@longuyễ使用此regex-05.111的nánh无效,205.111有效,这是正确的,但它也将使00.
和100.
有效