我有一些长度为3的整数,我想要包括0和1的所有值,我有这个正则表达式[0,1] {3}
但我喜欢避免价值000,怎么样?
PL / SQL中需要RegEx Oracle实现POSIX正则表达式,这是现代Perl样式正则表达式的一个相当有限的子集,这意味着不支持负向前瞻(?!)答案 0 :(得分:4)
这个怎么样?
(?!000)[01]{3}
匹配:
111
010
001不匹配:
000
123
0
11
我不确定你是否想要任何 3个字符的整数,或者只有那些包含0和1(000除外)的整数,在这种情况下:
(?!000)\d{3}
可能就是你要找的东西。
不使用前瞻。
(仅限整数):(00[1-9]|0[1-9]0|0[1-9]{2}|[1-9]00|[1-9]{3})
(任何0或1):(001|010|011|100|1{3})
答案 1 :(得分:2)
有人会发布一个带有负面外观或类似黑魔法的解决方案,但我会在这里发布我在其他地方发布的内容:正则表达式非常强大,但诀窍是知道何时不应该使用它们 - 测试应该在正则表达式之外完成特定值。应该在正则表达式内部对值的范围或模式进行测试。