Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从属性文件中获取java正则表达式?_Java_Regex_Groovy_Properties - Fatal编程技术网

如何从属性文件中获取java正则表达式?

如何从属性文件中获取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正则表达式配合得

从属性中读取动态正则表达式搜索和替换值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正则表达式配合得很好。)

一个解决方案(很好地处理反斜杠\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);