为什么以下正则表达式不适用于Java?

时间:2014-07-16 20:55:41

标签: java regex

我想删除一个单词及其所有尾随空格。

这是我的正则表达式:

item.getName().replace(word + "(\\s*)?", "");

我通过运行以下来测试此语句:

item.getName().replace(word, "");

这成功执行,虽然有额外的空格。所以错误必须归因于"(\\s*)?"部分。是因为我没有正确地逃避斜线吗?或者Java无法识别该正则表达式中的某些内容?

2 个答案:

答案 0 :(得分:6)

replace使用String字面值作为其第一个参数。请改用replaceAll

答案 1 :(得分:1)

String.replace方法不接受正则表达式。我相信你必须在orer中使用replaceAll才能使用正则表达式。此外,正则表达式是一种通用语法,表示String的某种模式,而不是包含某些单词的特定实例。你不能用正则表达式混合一个单词。