有如下字符串:ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1
需要匹配到不包含“你好.*?#”这些字符串(“你好”与“#”之间的字符是变量),匹配结果如下:
ab阿c126121a不bc13aba791啊326bop38a好1
请问相应正则如何书写?
我用[^你好.*?#]
匹配,中间变量也匹配出来了
有如下字符串:ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1
需要匹配到不包含“你好.*?#”这些字符串(“你好”与“#”之间的字符是变量),匹配结果如下:
ab阿c126121a不bc13aba791啊326bop38a好1
请问相应正则如何书写?
我用[^你好.*?#]
匹配,中间变量也匹配出来了
var str = 'abc126你好123#a791abc13ab你好a1b35#a791326bop你好cagf1#a791'
var newStr = str.replace(/[\u4f60|\u597d|\.|\*|\?|\#]/g, '');
console.log(newStr);
// 输出'abc126a791abc13aba791326bopa791'
中文需要转unicode码,.*?#这些字符也要转义
var str="ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1";
str.split(/你好[^#]*#/);
或
var str="ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1";
str.replace(/你好[^#]*#/g,"");
这个场景使用replace更快更便捷!也不会改变原始字符串。 纯用js的正则想要匹配出 非某个字符串的所有字符串,很难,所以我才推荐你使用逆向思考,替换掉你想要排除的字符串。