我有这样的文字:
<span id="3">
HELLO THERE
<span id="5">
Other stuff
<span id="6">
Other Stuff
<span id="7">
Other sutff
我需要在<span...>
文字之后只抓取HELLO THERE
个元素。因此,在上面的示例中,除了id = 3的跨度之外的所有跨度。
所以我尝试了(<span.+?>)+
来抓住所有跨度。接下来,我尝试HELLO THERE.+?(<span.+?>)+
,但这只抓取了第一个相关的。所以我的问题是,在这里使用什么是正确的正则表达式?
答案 0 :(得分:1)
此正则表达式将Hello Hello之后的所有标记捕获到匹配组中:
HELLO THERE(?:(?:.*?)(<span[^>]+>))+
HELLO THERE
- 匹配开头(?:.*?)
- 可选地匹配任何文字,直到找到(<span[^>]+>)
- span标记 - 将捕获此标记+
- 重复前两个步骤,直到找不到其他span标记您还需要将匹配选项设置为点匹配新行。
答案 1 :(得分:0)