我构建了以下regex。这与函数调用fn-bea:uuid()
它显然与函数匹配,但是当它集成到我的java程序中时:
xqueryFileContent.replaceAll("(fn\\-bea:uuid\\(\\))", "0");
该功能未被替换。我缺少什么想法?
答案 0 :(得分:2)
这里没有必要使用正则表达式。只需String#replace
即可进行简单的字符串搜索替换:
xqueryFileContent = xqueryFileContent.replace("fn-bea:uuid()", "0");
如果必须使用正则表达式,请使用Pattern.quote
引用所有特殊字符:
xqueryFileContent = xqueryFileContent.replaceAll(
Pattern.quote("fn-bea:uuid()"), "0" );
答案 1 :(得分:-1)
您不需要逃避-
:
xqueryFileContent.replaceAll("(fn-bea:uuid\\(\\))", "0");
答案 2 :(得分:-1)
只需将转义字符放在字符类[ ]
中。
xqueryFileContent = xqueryFileContent.replaceAll("(fn[-]bea:uuid[(][)])", "0");
我还想提一件事,replaceAll
将返回结果字符串。所以你必须存储返回值。
答案 3 :(得分:-1)
您必须使用replaceAll
的结果:
xqueryFileContent = xqueryFileContent.replaceAll("(fn\\-bea:uuid\\(\\))", "0");