2010-09-02 6 views
1

je le bit de code HTML suivant:Expression régulière - Obtenir Tout sauf Dernier match

<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> 

Mon but est d'isoler le dernier ensemble de balises de paragraphe. J'essaye ceci en faisant tout correspondre entre les étiquettes de paragraphe. Mon espoir était que j'obtiendrais trois résultats et que je pourrais manipuler les données.

J'ai essayé l'expression régulière suivante:

<p\b[^>]*>(.*?)<\/p> 

Il est correspondant uniquement avec la première série de balises de paragraphe. Comment puis-je le faire correspondre avec les deux premiers?

Merci

Mise à jour: Je pensais à ce sujet dans le mauvais sens. Je ne peux pas toujours supposer qu'il y aura X quantité d'informations avant le texte Cast que je veux. Je peux supposer que Cast sera le dernier paragraphe tiré, cependant. Donc, la question révisée: Comment puis-je correspondre à tout sauf le dernier paragraphe? En d'autres termes, comment faire correspondre tout avant "< p> Cast:"?

Répondre

1

Je pense que vous avez juste besoin de dire que vous voulez que plusieurs de ceux-ci:

(<p\b[^>]*>(.*?)<\/p>)*

Ou vous pouvez utiliser votre regex original et utiliser preg_match_all et choisissez le dernier élément.

MODIFIER RÉPONSE: Howabout (<p\b[^>]*>(.*?)<\/p>)*<p>Cast?

+0

Merci, Scott. Je pensais vraiment à cela de la mauvaise façon. Vous voulez jeter un coup d'oeil à la mise à jour? –

Questions connexes