¿Hay una ficha para capturar los saltos de línea en expresiones regulares de varias líneas?

StackOverflow https://stackoverflow.com/questions/1081890

  •  22-08-2019
  •  | 
  •  

Pregunta

Me he encontrado con este problema varias veces antes cuando se trata de hacer un poco de html raspando con php y los preg * funciones.

La mayoría de las veces que he de estructuras de captura por el estilo:

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

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

En particular, quiero algo como esto:

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

pero el \ n \ n no se ve como que iba a funcionar.

¿Hay un interruptor general de salto de línea?

¿Fue útil?

Solución

Creo que se podría reemplazar el \n\n con (\r?\n){2} esta manera se captura el par CRLF lugar de sólo el carbón LF.

Otros consejos

¿Está seguro que desea analizar HTML usando expresiones regulares? HTML no es regular y hay demasiados casos de esquina.

Me investigar algún tipo de analizador de HTML (quizás éste ?), Y luego identificar el patrón que le interesa a través de la estructura de datos HTML devuelto.

O usted podría mirar a la rel="nofollow Dom Extensión para php. Tiene una función para de una cadena o una archivo. A continuación, puede utilizar los métodos php DOM para recorrer el DOM y encontrar los datos que le interesan.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top