JavaScript Regex - Negation of (?:)

JavaScript Regex - Negation of (?:)

本文关键字:of Regex Negation JavaScript      更新时间:2023-09-26

嗨,假设我有这个字符串:

var text = "Jackie Chan | Jack Frost | Capt.Jack Sparrow"

我想找到除杰克·弗罗斯特之外的所有/Jack/

我可以通过使用?!轻松做到这一点,但它不包括姓氏

text.match(/[^'s]*Jack[^'s]*(?!'sFrost)/g);
// Result: ['Jackie', 'Capt.Jack']
// I want the result to be ['Jackie Chan', 'Capt.Jack Sparrow']

所以我基本上需要?:的否定。有这样的东西吗?

我不想做(?:Chan|Sparrow),因为如果我再加一个Jack,它就不会匹配。

感谢

只需在lookeahead:之后继续匹配即可

text.match(/'S*Jack'S*(?!'s+Frost)'s+'S+/g)