鍍金池/ 問答/Java/ 正則表達(dá)式匹配某字符串

正則表達(dá)式匹配某字符串

有如下字符串:ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1

需要匹配到不包含“你好.*?#”這些字符串(“你好”與“#”之間的字符是變量),匹配結(jié)果如下:
ab阿c126121a不bc13aba791啊326bop38a好1

請問相應(yīng)正則如何書寫?
我用[^你好.*?#]匹配,中間變量也匹配出來了

回答
編輯回答
夏夕

這個(gè)場景使用replace更快更便捷!也不會改變原始字符串。 純用js的正則想要匹配出 某個(gè)字符的所有字符串,很難,所以我才推薦你使用逆向思考,替換掉你想要排除的字符串。

var x= 'ab阿c126你好123#121a不bc13ab你好a1b35#a791啊326bop你好cagf1#38a好1';
var y = x.replace(/你好.*?#/g, "");
console.log(y);
2017年4月12日 07:41
編輯回答
純妹
var str = 'abc126你好123#a791abc13ab你好a1b35#a791326bop你好cagf1#a791'
var newStr = str.replace(/[\u4f60|\u597d|\.|\*|\?|\#]/g, '');

console.log(newStr); 
// 輸出'abc126a791abc13aba791326bopa791'

中文需要轉(zhuǎn)unicode碼,.*?#這些字符也要轉(zhuǎn)義
2018年4月23日 23:13
編輯回答
陌南塵
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,"");
2017年8月27日 22:39