Regex: recherchez ces balises HTML particulières qui contiennent ces mots (chaînes)
J'ai ces balises:
<span class="text_obisnuit2">* Notă:</span>John Wells - <em>My Dreams</em>, Albatros Books, 1986.</p>
et celui-là:
<span class="text_obisnuit1">* Notă:</span>Mariah Carey - <em>Lovers on the road</em>, BackStreet Books, 1965.</p>
Donc, je veux trouver ces balises html particulières <span class="text_obisnuit2">
qui contiennent ces mots (chaînes): Albatros
et <em>
et </em>
(La première ligne)
Réponses
Ceci est simple, mais il faut que les 'Albatros' viennent après le <em>
tag ( démo ):
(<span class="text_obisnuit2">).*<em>.*<\/em>.*Albatros.*
Le suivant ne se soucie pas de l'ordre dans lequel ils sont ( démo ):
(<span class="text_obisnuit2">).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Voici une autre variante, où le (s) chiffre (s) après text_obisnuit
n'a pas d'importance et la span
balise entière est capturée comme premier groupe ( démo ):
(<span class="text_obisnuit\d+">.*<\/span>).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Toutes les expressions régulières supposent que les entrées sont chacune sur leur propre ligne dans le fichier. Il est peut-être plus logique de détecter pour <p>
et </p>
comme limites, mais pour cela, nous aurions besoin d'un extrait plus grand de votre fichier d'entrée.
- Ctrl+F
- Trouver quoi:
<span class="text_obisnuit2">(?=.*?<em>.*?</em>)(?=.*?\bAlbatros\b).*$
- VÉRIFIER Envelopper
- CHECK Expression régulière
- UNCHECK
. matches newline
- Find All in Current Document
Explication:
<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
Capture d'écran:
