我有一个长字符串。我想用部分匹配的正则表达式(组)替换所有匹配项。
例如:
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);
最佳答案
Matcher
类通常与Pattern
一起使用。使用 Matcher.replaceAll()
方法替换字符串中的所有匹配项
String str = "This is a great day...";
Pattern p = Pattern.compile("\\bis\\b", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(str);
String result = m.replaceAll("<h1>is</h1>");
注意:使用 \b
正则表达式命令将匹配单词边界(如空格)。这有助于确保只匹配单词“is”,而不匹配包含字母“i”和“s”的单词(如“island”)。
关于java - 用匹配的正则表达式的一部分替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865985/