这个问题在这里已经有答案了:
用双反斜杠替换所有单反斜杠(5个答案)
昨天关门了。
我需要将字符串中的空白替换为 \\ \\
或者您可以说,我需要用双反斜杠将空格括起来,以便通过java代码对cassandra运行solr search查询。
但是我在用两个反斜杠括空格时出错了。
@Test
void testEscapeWhiteSpace_WhenPresent_ThenEscape(){
String testWord = "test it";
assertEquals("test\\ \\it",MyUtils.escapeWhiteSpacesForSearch(testWord));
}
public static String escapeWhiteSpacesForSearch(String testWord) {
return StringUtils.isEmpty(testWord)
?testWord
:testWord.replaceAll(" ", "\\ \\");
}
这是我得到的例外。我试着换衣服 replaceAll(" ")
与 "\\s"
或者 "\\s+"
为什么replaceall不能识别这些字符呢
java.lang.IllegalArgumentException: character to be escaped is missing
at java.util.regex.Matcher.appendReplacement(Matcher.java:820)
at java.util.regex.Matcher.replaceAll(Matcher.java:966)
at java.lang.String.replaceAll(String.java:3545)
at com....util.MyUtils.escapeWhiteSpacesForSearch(MyUtils.java:194)
1条答案
按热度按时间qv7cva1a1#
"\\ \\"
逃逸\
对于java。你还需要为regex逃走-"\\\\ \\\\"