根据堆栈溢出中的这篇文章,前瞻断言可以像正则表达式的交集一样工作,但我真的不知道它为什么起作用。 有人可以给我解释一下吗?
看这段代码:
console.log("hello world".match(/(?=[a-z])[^aeiou]/ig));
提供了该字符串中所有辅音的数组:
['h', 'l', 'l', 'w', 'r', 'l', 'd']
看来是指令
(?=[a-z])[^aeiou]
就像 [a-z] 和 [^aeiou] 之间的交集
无论我如何尝试和测试,我都不明白(我是初学者),而且我没有发现任何比上面的帖子更有趣的东西。
我是否可以得到许多集合之间的交集? (正则表达式)
感谢您的帮助!
先行执行匹配测试,而不消耗匹配的输入部分。由于它不消耗,因此您在前瞻之后立即放置的任何内容都将在同一位置匹配。因此它必须匹配先行和后续模式才能使正则表达式匹配,这使其成为 AND 关系。