我们怎样才能替代替代呢?下面是一个解释的例子:
<h1>test test</h1>
<h2>sometext</h2>
我谨将其替换为:
<h1 id="test-test">test test</h1>
<h2 id="sometext">sometext</h2>
请注意,id="test-test"
有一个破折号,它由空格字符和<h1>test test</h1>
替换,这就是为什么这个问题被命名为“替换替换”。
我明白,使用像<(h[1-6])>(.*)<\\/\\1>
这样的多个正则表达式,然后找到h1 id="..."
和替换就可以了,但是我想在一个正则表达式中做到这一点。有可能吗?
发布于 2019-09-03 12:21:00
Pattern.compile("<h1>(.*?)</h1>").matcher(s).replaceAll(mr ->
"<h1 id=" + mr.group(1).replace(' ', '-') + "> " + ...);
或
Pattern.compile("<h1>(.*?)</h1>").matcher(s).replaceAll(mr -> {
return "<h1 id=" + mr.group(1).replace(' ', '-') + "> " + ...;
});
.*?
,这样...<h1>...</h1>...<h1>...</h1>...
就可以了。mr
是MatchResult
。https://stackoverflow.com/questions/57771519
复制相似问题