我可以有/[abcd]/
,/(ab|cd)/
和/[^wxyz]/
。为什么不/(^wx|yz)/
Apparently您可以通过简单地将功能与其他功能融合在一起来实现完全相同的效果,例如:/(?!wx|yz)../
。
那么,为什么不只本地支持该功能呢?有根本原因吗?
最佳答案
因此,想象一下(^wx|yz)
的含义-正如您显然打算的那样-“既不是wx
也不是yz
的两个字符的序列”。 (^vwx|yz)
是什么意思?它的意思是“既不是vwx
也不是yz
的两个或三个字符的序列”?它的意思是“不是vwx
并且不以yz
开头的三个字符的序列,还是不是yz
的两个字符的序列”?
字符类表示法[...]
的功能(使它支持范围a-z
,使它支持否定等)的原因在于,它始终匹配单个字符。一旦取消该限制,就不再清楚这些含义。
关于javascript - 为什么JS Regexp中可能不支持“取反交替”或“取反字符串类”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12535113/