如何从属性文件中获取java正则表达式?
从属性中读取动态正则表达式搜索和替换值b.e时,java jre可能无法始终正常工作。如何让它与\chars一起正常工作如何从属性文件中获取java正则表达式?,java,regex,groovy,properties,Java,Regex,Groovy,Properties,从属性中读取动态正则表达式搜索和替换值b.e时,java jre可能无法始终正常工作。如何让它与\chars一起正常工作 String search = props.getProperty("search", null); String replace = props.getProperty("replace", null); String strResult = strText.replaceAll(search, replace); (Java正则表达式通常与literal正则表达式配合得
String search = props.getProperty("search", null);
String replace = props.getProperty("replace", null);
String strResult = strText.replaceAll(search, replace);
(Java正则表达式通常与literal正则表达式配合得很好。)一个解决方案(很好地处理反斜杠\chars)
该属性文件中是否有正则表达式,或者您希望用于搜索/替换的简单字符串?如果属性文件中包含正则表达式,那么如果属性文件写得正确,代码应该可以。(即,在属性文件中正确转义反斜杠)。如果您发布属性文件的内容,可能会有所帮助。
String groovy = "def String gregex = '" +search + "'; return gregex;";
Binding binding = new Binding();
GroovyShell shell = new GroovyShell(binding);
Object result = shell.evaluate(groovy);
if (result != null && result instanceof String) {
strData = strData.replaceAll(result.toString(), replace);
}
else
strData = strData.replaceAll(search, replace);