我想在将正则表达式的特殊字符替换为给定的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} }调用将会失败,或者语义会改变,
预先感谢