Regex: encuentre esas etiquetas html particulares que contienen estas palabras (cadenas)
Tengo estas etiquetas:
<span class="text_obisnuit2">* Notă:</span>John Wells - <em>My Dreams</em>, Albatros Books, 1986.</p>
y éste:
<span class="text_obisnuit1">* Notă:</span>Mariah Carey - <em>Lovers on the road</em>, BackStreet Books, 1965.</p>
Entonces, quiero encontrar esas etiquetas html particulares <span class="text_obisnuit2">
que contienen estas palabras (cadenas): Albatros
y <em>
y </em>
(La primera línea)
Respuestas
Este es sencillo, pero requiere que el 'Albatros' venga después de la <em>
etiqueta ( demostración ):
(<span class="text_obisnuit2">).*<em>.*<\/em>.*Albatros.*
Al siguiente no le importa en qué orden están ( demo ):
(<span class="text_obisnuit2">).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Aquí hay otra variación, donde los dígitos posteriores text_obisnuit
no importan y la span
etiqueta completa se captura como el primer grupo ( demostración ):
(<span class="text_obisnuit\d+">.*<\/span>).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Todas las expresiones regulares asumen que las entradas están cada una en su propia línea en el archivo. Quizás tenga más sentido detectar por <p>
y </p>
como los límites, pero para eso necesitaríamos tener un extracto más grande de su archivo de entrada.
- Ctrl+F
- Encontrar que:
<span class="text_obisnuit2">(?=.*?<em>.*?</em>)(?=.*?\bAlbatros\b).*$
- COMPROBAR Envolver
- COMPROBAR Expresión regular
- DESCARGAR
. matches newline
- Find All in Current Document
Explicación:
<span class="text_obisnuit2"> # literally
(?= # positive lookahead, make sure we have after:
.*? # 0 or more any character but newline, not greedy
<em> # literally open em tag
.*? # 0 or more any character but newline, not greedy
</em> # literally close em tag
) # end lookahead
(?= # positive lookahead, make sure we have after:
.*? # 0 or more any character but newline, not greedy
\bAlbatros\b # Albatros with word boundaries
) # end lookahead
.* # 0 or more any character but newline
$ # end of line
Captura de pantalla:
