我有一个很长的字符串。我想用匹配的regex(group)的一部分替换所有的匹配。
例如:
String = "This is a great day, is it not? If there is something, THIS IS it. <b>is</b>".
我想把所有的单词"is"
替换成,比如说,"<h1>is</h1>"
,大小写应该和原来的一样,所以我想要的最后一个字符串是:
This <h1>is</h1> a great day, <h1>is</h1> it not? If there <h1>is</h1> something,
THIS <h1>IS</h1> it. <b><h1>is</h1></b>.
我正在尝试的正则表达式:
Pattern pattern = Pattern.compile("[.>, ](is)[.<, ]", Pattern.CASE_INSENSITIVE);
6条答案
按热度按时间taor4pac1#
Matcher
类通常与Pattern
一起使用。使用Matcher.replaceAll()
方法替换字符串中的所有匹配项**注意:**使用
\b
regex命令将匹配单词边界(如空格)。这有助于确保仅匹配单词“is”,而不匹配包含字母“i”和“s”的单词(如“island”)。iovurdzv2#
就像这样:
$1
指的是正则表达式中第1组捕获的文本。1tu0hz3e3#
Michael的答案更好,但是如果你碰巧只想把
[.>, ]
和[.<, ]
作为边界,你可以这样做:knpiaxh14#
(?i)
表示忽略情况;用括号将您想要重用的所有内容 Package 起来,用$1、$2和$3重用它们,将它们连接成您想要的内容。7hiiyaii5#
这可能是一个后期添加,但如果有人正在寻找这个像搜索
thing
,他也需要Something
太被视为结果也将产生
Something
o2rvlv0m6#
只需使用反向引用即可。
应该可以。