我有这个正则表达式,我试图匹配任何除了以下数字
0|1|2|3|4|5|6
^(?!(0|1|2|3|4|5|6)).*
我可以让它在7或8或9上匹配,但是因为它们以我不想匹配的数字开头,所以10不起作用也不起作用。
例如,如果我的号码是22,那么它会匹配。 如果我的号码是2,那么就不匹配了。
答案 0 :(得分:2)
我相信这是最快的正则表达式方法(检查0到30之间的每个数字时有127步)。
\d{2,}|[7-9]
\d{2,}
匹配任何2位数字。[7-9]
如果您想使用排除范围而不是可接受的范围,也可以使用[^\D0-6]
。或者,如果您有更大的机会获得一位数数字,那么将条件转换为获得[7-9]|\d{2,}
可以提高效果。
答案 1 :(得分:1)
[^0123456]|(\d{2,})
怎么样?这样你可以否定你不想要的那些,但它仍然会匹配2位或更多位的数字。
答案 2 :(得分:1)
试试这个^(?![0-6]$)\d+$
不匹配仅包含0-6的字符串,所有其他数字都可以。
使用此^(?!0*[0-6]$)\d+$
将匹配数字,数字大于6。
答案 3 :(得分:1)
答案 4 :(得分:1)
正则表达式:\b[7-9]\b|\b[1-9]\d+\b
答案 5 :(得分:1)
答案 6 :(得分:0)
使用它可以匹配除39 / ^ +(([[0-24-9] [0-8]?[0-9] )|([3] [0-8 ] [0-9] )|([3]))$ /