作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可能错误地问了这个问题,但我想做的是:
给定一个可能有数百行长的大字符串,匹配并精确替换一个单词,并确保它不会替换和匹配任何其他字符串的任何部分。
例如:
Strings to Find = Mac Apple Microsoft Matt Damon I.B.M. Hursley Replacement Strings = MacO AppleO MicrosoftO MattDamonP I.B.M.O HursleyL Input String (with some of the escape characters included for clarity) = "A file to test if it finds different\r\n bits and bobs like Mac, Apple and Microsoft.\n I.B.M. in Hursley does sum cool stuff!Wow look it's "Matt Damon"\r\n Testing something whichwillerrorMac"\n
输出
"A file to test if it finds different bits and bobs like MacO, AppleO and MicrosoftO. I.B.M.O in HursleyL do sum cool stuff!Wow look it's "Matt DamonP" Testing something whichwillerrorMac"
我尝试使用正则表达式使用字边界,尽管这会在最后一行显示 'whichwhillerrorMacO'
。
我还尝试使用 StringTokenizer
类和各种分隔符来尝试替换单词,但我尝试替换的一些单词包含这些分隔符。
是否有正则表达式可以解决这个问题?
最佳答案
用 \$1O\
替换 \b(Mac|Apple)\b
不会影响 whichwillerrorMac
- 它会匹配 不过whichwill-Mac
。
关于java - 如何用正则表达式精确匹配单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868140/
我是一名优秀的程序员,十分优秀!