java:在给定的字符串中转义正则表达式的特殊字符

时间:2019-03-28 14:19:12

标签: java regex

我想在将正则表达式的特殊字符替换为给定的String之前,先将其注入Java的Pattern.compile

作为一个主意,我想对正则表达式的特殊字符进行详尽的转义(使用String.replaceAll),但是我认为这不是一种安全的方法,

** *示例* **

比方说我有这个正则表达式:(?:go_here )+go_here是一个占位符,我想使用以下表达式:

ArrayList<String> strings= getDifferentStrings();
String myRegex= "(?:go_here )+";

for(String string : strings){
    String myPattern= myRegex.replace("go_here", string);
    Pattern pattern= Pattern.compile(myPattern);
    //... some code
}

在上面的代码中,如果string包含正则表达式的特殊字符之一(+(). ...),则{{1} }调用将会失败,或者语义会改变,

预先感谢

0 个答案:

没有答案