首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替代替代

替代替代
EN

Stack Overflow用户
提问于 2019-09-03 12:11:23
回答 1查看 50关注 0票数 0

我们怎样才能替代替代呢?下面是一个解释的例子:

代码语言:javascript
运行
复制
<h1>test test</h1>
<h2>sometext</h2>

我谨将其替换为:

代码语言:javascript
运行
复制
<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="..."和替换就可以了,但是我想在一个正则表达式中做到这一点。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-03 12:21:00

代码语言:javascript
运行
复制
Pattern.compile("<h1>(.*?)</h1>").matcher(s).replaceAll(mr ->
    "<h1 id=" + mr.group(1).replace(' ', '-') + "> " + ...);

代码语言:javascript
运行
复制
Pattern.compile("<h1>(.*?)</h1>").matcher(s).replaceAll(mr -> {
    return "<h1 id=" + mr.group(1).replace(' ', '-') + "> " + ...;
});
  • 也就是说,使用replaceAll的lambda版本(从java 9开始)。
  • 替换最短的序列.*?,这样...<h1>...</h1>...<h1>...</h1>...就可以了。
  • mrMatchResult
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57771519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档