前瞻断言可以像正则表达式的交集一样工作,但为什么呢? (JavaScript)

问题描述 投票:0回答:1

根据堆栈溢出中的这篇文章,前瞻断言可以像正则表达式的交集一样工作,但我真的不知道它为什么起作用。 有人可以给我解释一下吗?

看这段代码:

console.log("hello world".match(/(?=[a-z])[^aeiou]/ig));

提供了该字符串中所有辅音的数组:

['h', 'l', 'l', 'w', 'r', 'l', 'd']

看来是指令

(?=[a-z])[^aeiou]

就像 [a-z] 和 [^aeiou] 之间的交集

无论我如何尝试和测试,我都不明白(我是初学者),而且我没有发现任何比上面的帖子更有趣的东西。

我是否可以得到许多集合之间的交集? (正则表达式)

感谢您的帮助!

javascript regex intersection
1个回答
2
投票

先行执行匹配测试,而不消耗匹配的输入部分。由于它不消耗,因此您在前瞻之后立即放置的任何内容都将在同一位置匹配。因此它必须匹配先行和后续模式才能使正则表达式匹配,这使其成为 AND 关系。

© www.soinside.com 2019 - 2024. All rights reserved.