【问题标题】:regular expression to extract text surrounding anchor tag from html page正则表达式从html页面中提取锚标记周围的文本
【发布时间】:2014-04-22 21:07:15
【问题描述】:

有没有办法在 html 页面中提取锚标记周围的文本?我在 java 中工作,我的研究需要我在标签中和标签周围提取数据。我尝试过搜索,我发现的只是正则表达式,只提取锚文本而不是它周围的单词。

【问题讨论】:

  • 不再...为什么不直接使用解析器?
  • 改用 HTML 解析器。另请参阅 Luiggi 的链接。
  • 用正则表达式解析 html 不是我愿意做的事情,除非它的数量很少而且众所周知。我推荐类似 jsoup jsoup.org/download 的东西,它是一个专门用于 Web 解析的库。你所说的周围标签到底是什么意思?这是否意味着您想知道嵌套标签旁边的标签是什么?
  • 您也可以考虑使用 jericho.htmlparser.net/docs/index.html 解析器将 HTML 呈现为纯文本。

标签: java html regex


【解决方案1】:

正则表达式不是解析 html 的方法,而是 ..
又快又脏,如果你必须有一个正则表达式

"([^<>]*)<a>([^<>]*)</a>([^<>]*)"

 ( [^<>]* )         # (1)
 <a>
 ( [^<>]* )         # (2)
 </a>
 ( [^<>]* )         # (3)

“有a way to provide the number of characters before and after the anchor text”吗?

当然。您可以提供最小/最大 {m,n} 或精确 {exact} 或混合。
示例:


之前 = 5,之后 = 5 到 10
"([^&lt;&gt;]{5})&lt;a&gt;([^&lt;&gt;]*)&lt;/a&gt;([^&lt;&gt;]{5,10})"

之前 = 1 到无限制,之后 = 0 到 10
"([^&lt;&gt;]{1,})&lt;a&gt;([^&lt;&gt;]*)&lt;/a&gt;([^&lt;&gt;]{0,10})"


还有许多其他可能的变体,包括混合文字。

【讨论】:

  • 谢谢.. 这更有意义:) 还有一种方法可以提供锚文本前后的字符数吗??
猜你喜欢
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 2011-06-26
相关资源
最近更新 更多