我有以下文字:


  Testlalatest


我正在尝试用另一个字符串替换lala

仅当Test[replace]test后面或后面有任何字符时,输出才应为lala

但我得到了:Tes[replace]est

码:

strLine = strLine.replaceAll("\\w"+word+"\\w", replaceWord);

最佳答案

您可以使用环视功能来确保您的单词在单词的前面和后面都带有单词字符。

strLine = strLine.replaceAll("(?<=\\w)" + word + "(?=\\w)", replaceWord);


否则在任一侧使用\B

strLine = strLine.replaceAll("\\B" + word + "\\B", replaceWord);


RegEx Demo

关于java - Java Regex和replaceAll,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29004480/

10-10 13:30