Regex 正则表达式,如何避免特定值?
我有许多长度为3的整数,我想要所有的值,包括0和1,我有一个正则表达式[0,1]{3} 但我喜欢避开000这个值,怎么办Regex 正则表达式,如何避免特定值?,regex,Regex,我有许多长度为3的整数,我想要所有的值,包括0和1,我有一个正则表达式[0,1]{3} 但我喜欢避开000这个值,怎么办 PL/SQL中需要正则表达式Oracle实现POSIX正则表达式,这是现代Perl风格正则表达式的一个相当有限的子集,这意味着不支持负前瞻(?!)有人会发布带有负前瞻的解决方案,或类似的黑魔法,但我将在这里发布我在其他地方发布的内容:正则表达式功能强大得惊人,但诀窍是知道何时不应该使用它们——测试特定值应该在正则表达式之外进行。测试值的范围或模式应该在正则表达式内部完成。有人
PL/SQL中需要正则表达式Oracle实现POSIX正则表达式,这是现代Perl风格正则表达式的一个相当有限的子集,这意味着不支持负前瞻(?!)有人会发布带有负前瞻的解决方案,或类似的黑魔法,但我将在这里发布我在其他地方发布的内容:正则表达式功能强大得惊人,但诀窍是知道何时不应该使用它们——测试特定值应该在正则表达式之外进行。测试值的范围或模式应该在正则表达式内部完成。有人会发布一个带有负面环视的解决方案,或类似的黑魔法,但我会在这里发布我在其他地方发布的内容:正则表达式功能惊人,但是诀窍是知道什么时候不应该使用它们——测试特定值应该在正则表达式之外进行。测试值的范围或模式应该在正则表达式中完成。这如何
(?!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})
这个怎么样
(?!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表示“黑魔法”,如果您说不使用正则表达式测试数字范围(您在正则表达式的有效使用中包含了什么!),但排除一个特殊值不是问题。-1表示“黑魔法”,如果您说不要使用正则表达式测试数字范围(您在正则表达式的有效使用中包含了什么?),但排除一个特殊值不是问题。所有值的长度都是3,PL/SQL Oracle实现POSIX正则表达式中不需要0、00或1RegEx等值,这是现代Perl风格正则表达式的一个相当有限的子集,这意味着不支持负前瞻(?!),您有另一个想法吗?所有值的长度都是3,PL/SQL Oracle实现POSIX正则表达式时不需要0、00或1RegEx之类的值,这是现代Perl风格正则表达式的一个相当有限的子集,这意味着不支持负前瞻(?!),您有另一个想法吗?