我有一个包含以下内容的字符串:
<table border="0" cellpadding="0" cellspacing="0" style="width:280px">
<tbody>
<tr>
<td><img src="/corr/subscription/subscription_1" /></td>
<td><img src="/corr/subscription/subscription_2" /></td>
</tr>
<tr>
<td id="sub_referat1">#parse ("module/asd")</td>
<td id="sub_referat2"> </td>
</tr>
</tbody>
我需要将<td id="sub_referat1">
...与</td>
之间的内容替换为另一个字符串。
重新开始应该是:... <td id="sub_referat1">Max Musterman</td> ...
我需要帮助
答案 0 :(得分:1)
您可以使用正则表达式执行此操作:
content = content.replaceAll("(<td id=\"sub_referat1\">).*?(</td>)", "$1Max Mustermann$2");
$1
是第一个捕获组的内容,$2
是第二个捕获组的内容。
.*?
匹配任何内容,但不贪婪(停在第一个</td>
)。
答案 1 :(得分:0)
如果您想在替换之前解析匹配,可以执行以下操作:convert(String)
获取匹配并对其进行转换。
Pattern pattern = Pattern.compile("(<td\\s+id=\"sub_referat1\">)([^<]*)");
Matcher matcher = pattern.matcher(content);
StringBuffer buffer = new StringBuffer();
while(matcher.find()) {
matcher.appendReplacement(buffer, matcher.group(1));
buffer.append(convert(matcher.group(2)));
}
matcher.appendTail(buffer);