[英]Regular Expression - Getting Everything But Last Match
我有以下HTML:
<p><a href="http://vimeo.com/13114334" title="Grain & Gram: Nick Sambrato, Printmaker"><img src="http://b.vimeocdn.com/ts/747/476/74747630_200.jpg" alt="Grain & Gram: Nick Sambrato, Printmaker" /></a></p>
<p>Read the full interview with Nick Sambrato, Printmaker here:<br /><br /><a href="http://grainandgram.com/nicksambrato/" target="_blank" rel="nofollow">grainandgram.com/nicksambrato/</a></p>
<p>Cast: <a href="http://vimeo.com/grainandgram" style="color: #2786c2; text-decoration: none;">Grain & Gram</a></p>
我的目标是隔离最后一组段落标签。 我正在尝试通过匹配段落标签之间的所有内容来进行尝试。 我希望得到三个结果,并且可以处理数据。
我尝试了以下正则表达式:
<p\b[^>]*>(.*?)<\/p>
它仅与第一组段落标签匹配。 我如何使其与前两个匹配?
谢谢
更新:我在以错误的方式考虑这个问题。 我不能总是假定我想要的Cast文本之前会有X信息量。 我可以假设Cast将是最后一段。 因此,修改后的问题是: 除了最后一段之外,我该如何匹配所有内容? 换句话说,如何匹配“ <p> Cast:”之前的所有内容?
我认为您只需要说您想要多个:
(<p\\b[^>]*>(.*?)<\\/p>)*
或者,您可以使用原始正则表达式并使用preg_match_all
,然后选择最后一个元素。
编辑响应 :怎么样(<p\\b[^>]*>(.*?)<\\/p>)*<p>Cast
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.