gpt4 book ai didi

JavaScript REGEX 负向前瞻混淆

转载 作者:行者123 更新时间:2023-12-03 11:52:08 26 4
gpt4 key购买 nike

好吧,我用 JavaScript 处理一些行,并且想要使用否定前瞻来消除该行(如果它包含特定短语),但我似乎仍然捕获这些行,并且 regexbuddy 和其他人显示它匹配,我不确定为什么

^This (\w+) (\w+) was built in (\d+). (.+?).(?! This car has a salvage title.)$

所以我需要获取一些不同的第二句值,这些值会发生变化以匹配 (.+?)。我不想要的是该行是否包含对抢救标题的引用

所以

This Honda Accord was built in 1986. This car has 3 accidents. This car has a salvage title.

不应该匹配,因为否定前瞻应该失败

但是

This Honda Accord was built in 1986. This car has 3 accidents.

应该匹配,但我在两者上都得到了匹配。我只是误解了负面的展望还是我错误地格式化了它?

最佳答案

…(?! This car has a salvage title.)$

您已将否定前瞻放在字符串末尾之前。它总是不匹配(即成功)。毕竟这是向前查找,而不是向后查找,并且在字符串末尾查看是没有意义的。

您可能想这样做:

^This (\w+) (\w+) was built in (\d+)\. (?!This car has a salvage title)(.+?)\.$

这里,(?!This car has a salvage title)(.+?) 确实与点之前的句子(准确地说,至少一个字符)匹配,该句子不以短语“这辆车有报废权”。或者,如果您不想在第一句之后的任何地方使用该短语,则使用

^This (\w+) (\w+) was built in (\d+)\. (?!.*?This car has a salvage title)(.+?)\.$
// ^^^

关于JavaScript REGEX 负向前瞻混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25779470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com