我想做一个 startStr.replaceAll(searchStr, replaceStr) 我有两个要求。
- searchStr 必须是一个完整的单词,这意味着它必须有一个空格、字符串的开头或字符串字符的结尾。
- 例如
- startStr = "确认,戴上帽子"
- searchStr = "开"
- 替换字符串 = ""
- 预期=“确认,戴上你的帽子”
- 例如
- searchStr 可能包含正则表达式模式
- 例如
- startStr = "删除这个 * 东西"
- searchStr = "*"
- 替换字符串 = ""
- 预期=“删除这个东西”
- 例如
对于要求 1,我发现这可行:
startStr.replaceAll("\\b"+searchStr+"\\b",replaceStr)
对于要求 2,我发现这可行:
startStr.replaceAll(Pattern.quote(searchStr), replaceStr)
但我不能让他们一起工作:
startStr.replaceAll("\\b"+Pattern.quote(searchStr)+"\\b", replaceStr)
这是失败的简单测试用例
startStr = "remove this * thing but not this*"
searchStr = "*"
replaceStr = ""
expected = "remove this thing but not this*"
actual = "remove this * thing but not this*"
我错过了什么?
提前致谢