js正则表达否定一个词

时间:2015-09-04 13:52:46

标签: javascript regex

我的意思是如果我有一个字符串abcab应该匹配,但如果我有一个字符串acd,则a不应匹配

我使用[^(ab)]但不起作用。

我希望'abc'.match(/ regex /)输出c'acd'.match(/ regex /)输出acd

3 个答案:

答案 0 :(得分:0)

您可以在String#replace中使用此正则表达式:

var result = input.replace(/\ba[^c]/, '');

RegEx Demo

除非a后面跟空字符串,否则会替换c

这将取代:

abc => c
acd => acd

答案 1 :(得分:0)

^(?!.*ab).+$含义字符串不得包含ab - 或^(?=.*ab).+$含义字符串必须包含ab

使用http://regexr.com/来帮助您

答案 2 :(得分:0)

我建议您从字符串中删除所有ab

str.replace(/ab/gi, '')

然后匹配剩下的东西。



var re = /ab/gi; 
var str = 'abc\nacd\nabcb';
var result = str.replace(re, '').match(/[a-z]+/gi);
alert(result);