我尝试使用以下内容来匹配除0和1之外的任何数字(例如,2到9999),但它似乎无法正常工作。
\d[0-9]?[0-9]?[^0-1]*
答案 0 :(得分:4)
从0
中的字符类中排除1
和regex
。
[2-9]{1}\d{0,3}
这将匹配不以 0
和1
开头的所有数字。
修改强>
匹配除0
和1
以外的所有数字
[2-9]{1,4}
答案 1 :(得分:2)
您可以使用
匹配2到9999之间的所有数字\b(?![01]\b)\d{1,4}\b
或(如果你有个别字符串)
^(?![01]$)\d{1,4}$
请参阅demo
(?!...)
是一个负前瞻,用于定义例外。
更多详情
\b
- 字边界(如果使用^
- 字符串的开头)(?![01]\b)
- 如果有0
或1
([01]
是一个与来自中定义的集合中的单个字符匹配的字符类,则会导致匹配失败的否定前瞻整个单词)(如果使用$
代替\b
,则为字符串)\d{1,4}
- 1,2,3或4位数字\b
- 一个尾随字边界(没有数字,字母或_
可以立即显示在右边,如果有字母或_
,则替换为(?!\d)
})。答案 2 :(得分:0)
如果你想获得2到9999之间的所有数字,你需要检查两种情况,如果它是长度为1的数字,然后排除密码0和1,或者如果长度为>则允许所有数据。所以解决方案就像:
(([2-9]{1})|([1-9]{1}[0-9]{1,}))
这不允许0和1,但允许111,322,20或24。
答案 3 :(得分:0)
这应匹配1和无穷大之间的任何值,并匹配1到9之间的1位或9位后跟0或更多0位数。
但它不适用于003 004 024:
[1-9]+[0-9]{0,}