我的意思是如果我有一个字符串abc
,ab
应该匹配,但如果我有一个字符串acd
,则a
不应匹配
我使用[^(ab)]
但不起作用。
我希望'abc'.match(/ regex /)
输出c
和'acd'.match(/ regex /)
输出acd
答案 0 :(得分:0)
您可以在String#replace
中使用此正则表达式:
var result = input.replace(/\ba[^c]/, '');
除非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);