【发布时间】:2009-12-08 16:32:11
【问题描述】:
我可能问错了这个问题,但我想做的是:
给定一个可能有数百行长的大字符串,匹配并准确替换一个单词,并确保它不会替换和匹配任何其他字符串的任何部分。
例如:
要查找的字符串 = Mac Apple 微软 Matt Damon I.B.M. Hursley 替换字符串 = MacO AppleO MicrosoftO MattDamonP I.B.M.O HursleyL 输入字符串(为清楚起见,包含一些转义字符)= "用于测试是否发现不同的文件\r\n 像 Mac、Apple 和 Microsoft 这样的小东西。\n 赫斯利的 I.B.M. 确实总结了一些很酷的东西!哇,看起来是“马特·达蒙”\r\n 测试会出错的东西Mac"\n输出
"一个文件来测试它是否发现不同 MacO、AppleO 和 MicrosoftO 之类的零碎东西。 Hursley 的 I.B.M.O 确实总结了一些很酷的东西!哇,看起来是“Matt DamonP” 测试会出错的东西Mac"我尝试过使用单词边界使用正则表达式,尽管这会在最后一行找到'whichwhillerrorMacO'。
我也尝试使用StringTokenizer 类和各种分隔符来尝试替换单词,但我尝试替换的一些单词包含这些分隔符。
有没有正则表达式可以解决这个问题?
【问题讨论】:
-
您希望有多少种不同的“要查找的字符串”和“替换字符串”?我认为无论哪种方式我的答案都是相同的,但我想我会检查一下。 :)
-
我仍然没有解决这个问题,但只需对每个单词进行相等性检查,虽然它需要很长时间。不知道这样的问题能不能解决。
标签: java regex string string-search