我有以下文字:
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/