[英]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.