繁体   English   中英

JavaScript REGEX负面展望

[英]JavaScript REGEX negative look ahead confusion

好的,我使用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.)$ 

您已将否定的lookahead放在字符串末尾之前。 永远不会在那里匹配(即成功)。 毕竟这是一个先行,而不是向后看,在字符串末尾窥视是没有意义的。

您可能想这样做:

^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)(.+?)\.$
//                                        ^^^

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM