ReplaceAll替换除了我指定的所有内容

时间:2012-10-03 16:32:42

标签: java regex escaping

我希望用其他东西替换特定字符串中的所有管道实例。但是,它不仅不替换指定的字符串,而是替换所有空格。例如:

String cleanTitle = StringEscapeUtils.escapeHtml("Bacon is | good");
out.println(cleanTitle.replaceAll("|", "*"))

此示例输出 * B * a * c * o * n * i * s * | * g * o * o * d *

我需要它说培根好*

- 我的界面需要函数escapeHTML,尽管这个例子没有将它用于我的问题。

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

String#replaceAll()执行正则表达式匹配和替换。 |是正则表达式中的特殊字符,因此需要使用\进行转义,如Jasper所述。但是,您实际上想要一个简单的char-by-char搜索和替换。 String#replaceAll()是用于此目的的错误工具。您应该使用String#replace()代替。

out.println(cleanTitle.replace('|', '*'));