0

我可能会错误地问这个问题,但我想做的是以下内容:

给定一个可能有 100 多行的大字符串,匹配并准确替换一个单词,并确保它不会替换和匹配任何其他字符串的任何部分。

例如 :

要查找的字符串 = Mac Apple Microsoft Matt Damon IBM Hursley  
替换字符串 = MacO AppleO MicrosoftO MattDamonP IBMO HursleyL  
输入字符串(为清楚起见,包含一些转义字符)=  
"用于测试是否发现不同的文件\r\n  
像 Mac、Apple 和 Microsoft 这样的小东西。\n  
赫斯利的 IBM 确实总结了一些很酷的东西!哇,它是“马特达蒙”\r\n  
测试会出错的东西Mac"\n  

输出

"一个文件来测试它是否发现不同  
MacO、AppleO 和 MicrosoftO 之类的零碎东西。  
赫斯利的 IBMO 确实总结了一些很酷的东西!哇,看起来是“马特·达蒙”  
测试会出错的东西Mac"  

我尝试过使用单词边界使用正则表达式,尽管这'whichwhillerrorMacO'在最后一行出现。

我也尝试使用StringTokenizer类和各种分隔符来尝试替换单词,但是我尝试替换的一些单词包含这些分隔符。

有没有可以解决这个问题的正则表达式?

4

1 回答 1

2

替换\b(Mac|Apple)\b\$1O\不会触及whichwillerrorMac- 但它会匹配whichwill-Mac

于 2009-12-08T16:37:21.583 回答