Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式负前瞻混淆_Javascript_Regex_Negative Lookahead - Fatal编程技术网

JavaScript正则表达式负前瞻混淆

JavaScript正则表达式负前瞻混淆,javascript,regex,negative-lookahead,Javascript,Regex,Negative Lookahead,好的,我用JavaScript处理了一些行,想使用一个否定的前瞻性来消除包含特定短语的行,但我似乎仍然抓住了行,regexbuddy和其他人显示了匹配,我不知道为什么 ^This (\w+) (\w+) was built in (\d+). (.+?).(?! This car has a salvage title.)$ 因此,我需要获取一些不同的第二个句子值,这些值要进行更改以匹配(+?)。 我不想看到的是,行中是否包含对救助标题的引用 所以 不应该匹配,因为负面展望应该失败 但是 应该

好的,我用JavaScript处理了一些行,想使用一个否定的前瞻性来消除包含特定短语的行,但我似乎仍然抓住了行,regexbuddy和其他人显示了匹配,我不知道为什么

^This (\w+) (\w+) was built in (\d+). (.+?).(?! This car has a salvage title.)$
因此,我需要获取一些不同的第二个句子值,这些值要进行更改以匹配(+?)。 我不想看到的是,行中是否包含对救助标题的引用

所以

不应该匹配,因为负面展望应该失败

但是

应该匹配,但我两个都匹配。我只是错误地理解了负面展望,还是错误地格式化了它

您已经在字符串的末尾之前放置了负的前向展望。它在那里总是不匹配(即成功)。毕竟,这是一种前瞻,而不是一种落后,在绳子的末端偷看是没有意义的

您可能想这样做:

^This (\w+) (\w+) was built in (\d+)\. (?!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)(.+?)\.$
^This (\w+) (\w+) was built in (\d+)\. (?!.*?This car has a salvage title)(.+?)\.$
//                                        ^^^