【发布时间】:2015-07-17 01:17:38
【问题描述】:
我需要匹配两个标签之间的文本,但从标签的特定位置开始。
想象一下这段文字:
Some long <br> text goes <br> here. And some <br> more can <br> go here.<br>
在我的例子中,我想在这里匹配 。还有一些。 我成功地将第一次出现之间的文本(第一个和第二个 br 标签之间)与:
<br>(.*?)<br>
但我正在寻找下一个匹配中的文本(将在第二个和第三个 br 标签之间)。这可能比我意识到的更明显,但 Regex 不是我的强项。
【问题讨论】:
-
你的平台是什么?而且,更重要的是,您使用正则表达式解析 HTML 的理由是什么?
-
我正在使用 chrome 中的数据抓取扩展程序,并且我正在收集存储在单个
元素中的地址数据,该元素由每个地址组件的
分隔。这会因站点而异,因此我只需要一种快速的方法来在任何给定站点上获取我需要的内容,然后继续前进。所以您使用的可能是地球上功能最强大的 HTML 解析器,但您认为正则表达式是一种快速前进的方式?如果您使用的平台没有适当的 HTML 解析器(可能是文本编辑器),那将很重要。但在 Chrome 中,它没有。如果你到目前为止分享你的代码,我会向你展示一种解决这个问题的方法。我正在使用Web Scrapper 扩展。它成功抓取了我正在查看的文本,但随后显示为:<a action="some_action" class="some_name" recnum="1" href="javascript:void(0);">My Company Title</a><br> <strong class="">(999) 999-9999</strong><br> First Avenue Lane<br> Somwhere, II 00000<br>看起来像是textselector 的工作。它将在内部将<br>转换为\n,并将所有可能的HTML 字符实体转换为实际字符。之后在\n上拆分纯文本是对正则表达式的一种很好的使用。
标签: regex html-parsing