Javascript 从RegExp中删除子字符串之间的字符串
我编写此代码是为了将字符串从“a”删除到“c”Javascript 从RegExp中删除子字符串之间的字符串,javascript,regex,xregexp,Javascript,Regex,Xregexp,我编写此代码是为了将字符串从“a”删除到“c” var str = "abcbbabbabcd"; var re = new RegExp("a.*?c","gi"); str = str.replace(re,""); console.log(str); 控制台中的结果是“bbd” 但结果对我来说是“bbabbd” 我能用正则表达式解决这个问题吗 谢谢您的帮助。您需要将正则表达式更新为,这将避免a和c之间出现字符a和c var str=“abcbbabcd”; var re=新的RegEx
var str = "abcbbabbabcd";
var re = new RegExp("a.*?c","gi");
str = str.replace(re,"");
console.log(str);
控制台中的结果是“bbd”
但结果对我来说是“bbabbd”
我能用正则表达式解决这个问题吗
谢谢您的帮助。您需要将正则表达式更新为,这将避免
a
和c
之间出现字符a
和c
var str=“abcbbabcd”;
var re=新的RegExp(“a[^ac]*?c”、“gi”);
str=str.replace(re,“”);
console.log(str)代码>
使用基于lookahead
的正则表达式。请参阅演示。*?
将在第一个a
之后使用a
。要停止它,请使用lookahead
编辑:
实际上,您可以使用求反字符类
,因为您只有1个字符。g
表示它是一个全局regexp,这意味着它同时拾取字符串中的abc
和abbac
。这样就可以正确地从a..c
中删除项目。您似乎只看到了两个abc
,而错过了ababc
。结果bbd
实际上是正确的,因为它确实“将字符串从'a'删除到'c'”
abc
bb
abbac
d=>bbd
还有一个办法
var str = "abcbbabbabcd";
var str= str.replace(/abc/g, "");
console.log(str);
如果是单个字符,则使用否定字符类。这会将字符串从“a”正确删除为“c”。也许你的意思是从“a”到“c”但不包括“a”的字符串?如果是这样,请编辑问题,使其清晰。
a[^a]*c
var str = "abcbbabbabcd";
var str= str.replace(/abc/g, "");
console.log(str);