【问题标题】:how to get innerhtml using regex如何使用正则表达式获取innerhtml
【发布时间】:2013-07-04 12:04:59
【问题描述】:

如何使用正则表达式获取带有嵌套标签的innerhtml

例子:

<div class="def">
<ul>
<li>..</li>
<li>..</li>
</ul>
</div>

<div class="def">
<ul>
<li>..</li>
<li>..</li>
</ul>
</div>

我只需要这段代码的第一个 div 内容 "(?s)(&lt;div\\sclass=\"def\"&gt;(.+)&lt;\\/div&gt;)" 每当我使用此代码时,我都会同时获得 div 内容

如何单独获得第一个?

请帮忙...

【问题讨论】:

  • 使用好的html解析器
  • 停止使用正则表达式进行 html 解析,帮助自己和世界。

标签: java regex


【解决方案1】:

这是因为您的正则表达式中有.+..将其更改为.+?

但是你应该永远不要使用 REGEX 来解析 html..

使用HTML PARSER,这是get div的方法


为什么要使用解析器?

考虑你的正则表达式。有无数种情况可以破坏你的代码

  • 如果存在 嵌套 div
  • ,您的正则表达式将不起作用
  • 有些 div 没有结束标记!(XHTML 除外)

总结一下,永远不要使用正则表达式来解析 html

【讨论】:

  • @LuiggiMendoza 嗯..那个很棒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多