Haxe的模式替换

Ali*_*phy 2 regex haxe

var str2 : String = "Expander Detected (%MSG_ID%)";
var r2 = ~/[\(%MSG_ID%\)]+/g;
trace(r2.replace(str2, ""));
Run Code Online (Sandbox Code Playgroud)

预期结果: Expander Detected

实际结果: Expander etected

我需要替换(%MSG_ID%)我的字符串.之前(%MSG_ID%)的字符是动态的,因此我们无法手动替换它们.

Gam*_*a11 6

你需要删除周围[].这按预期工作:

var r2 = ~/\(%MSG_ID%\)+/g;
Run Code Online (Sandbox Code Playgroud)

[]是一个字符集,如果集合中包含的单个字符匹配,则匹配.由于该集恰好包含D,因此D在调用时也会被删除replace().但是,如果所有字符(以及该顺序)存在,您只想匹配.

我推荐像regex101.com这样的工具来测试正则表达式.你可以很好地看到那里的问题: