startStr.replaceAll(searchStr, replaceStr) を実行したいのですが、2 つの要件があります。
- searchStr は単語全体である必要があります。つまり、スペース、文字列の先頭または文字列の末尾の文字が前後にある必要があります。
- 例えば
- startStr = "ON確認、帽子をかぶって"
- searchStr = "オン"
- replaceStr = ""
- 予想=「確認、帽子をかぶって」
- 例えば
- searchStr には正規表現パターンが含まれる場合があります
- 例えば
- startStr = "この * ものを削除"
- searchStr = "*"
- replaceStr = ""
- expected = 「これを削除してください」
- 例えば
要件 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*"
私は何が欠けていますか?
前もって感謝します