正则表达式匹配没有特定拖尾词的字符串

时间:2015-09-16 18:38:55

标签: regex

我正在尝试构建一个正则表达式来匹配没有特定尾词的字符串。 例如:    我想匹配任何字符串,但没有拖尾词“apple”。

<h1>test circles</h1> 
<h1>Why em ? ... because </h1>

我尝试过这个带有负面预测的,但失败了:

1. input:   this is apple
   output:  I don't want to match this

2. input:  this is apple store
   output:  match (apple is not the tailing word, although it is there)

这一个不匹配案例1,但也不匹配案例2.我想“不匹配”案例1,但“匹配”案例2。

2 个答案:

答案 0 :(得分:0)

您可以使用负面看法:

.*(?<!\bapple)$

请参阅DEMO

答案 1 :(得分:0)

您必须在否定前瞻之前使用开始锚^

^(?!.*\bapple$)

RegEx Demo

如果最后一个单词是apple,则匹配将失败。