2009-07-04 8 views
0

J'ai déjà rencontré ce problème plusieurs fois en essayant de faire un peu de grattage html avec php et les fonctions preg *.Existe-t-il un jeton pour les sauts de ligne de capture dans une regex multiligne?

La plupart du temps, j'ai des structures de capture comme ça:

<!-- comment --> 
<tag1>lorem ipsum</tag> 

<p>just more text with several html tags in it, sometimes CDATA encapsulated…</p> 
<!-- /comment --> 

En particulier, je veux quelque chose comme ceci:

/<tag1>(.*?)<\/tag1>\n\n<p>(.*?)<\/p>/mi 

mais le \ n \ n ne le fait pas On dirait que ça marcherait.

Existe-t-il un commutateur général de coupure de ligne?

Répondre

3

Je pense que vous pourriez remplacer le \n\n par (\r?\n){2} de cette façon que vous capturez la paire CRLF au lieu de seulement le LF char.

1

Etes-vous sûr de vouloir analyser HTML en utilisant des expressions rationnelles? Le HTML n'est pas régulier et il y a trop de cas d'angle.

Je voudrais étudier une certaine forme d'analyseur HTML (peut-être this one?), Puis identifier le modèle qui vous intéresse dans la structure de données HTML renvoyée.

+0

Le grattage utilisant la regex a bien fonctionné pour moi dès aujourd'hui. Mais merci pour le lien. –

Questions connexes