Cela correspondra à toutes les lignes qui ont :
<span class="test_formal2">
suivie ou non de <p class="test_formal">
Mais pas <p class="test_formal">
suivi de <span class="test_formal2">
- Ctrl + F
- Trouver quoi :
^(?:(?!<p class="test_formal">).)*<span class="test_formal2">.*$
- Vérifier l'enveloppement
- Vérifier l'expression régulière
- DÉFAUT DE CONTRÔLE
. matches newline
- Search in document
Explication :
^ # beginning of line
(?: # start non capture group
(?! # negative lookahead, make sure we haven't
<p class="test_formal"> # literally
) # end lookahead
. # 1 any character
)* # end group, may appear 0 or more times
<span class="test_formal2"> # literally
.* # 0 or more any character
$ # end of line
Compte tenu de ce qui précède :
<p class="test_formal">
<span class="test_formal2">
<p class="test_formal"><span class="test_formal2">
blah blah <p class="test_formal"><span class="test_formal2"> blah blah
<span class="test_formal2"><p class="test_formal">
blah blah <span class="test_formal2"><p class="test_formal"> blah blah
Il correspond :
Search "^(?:(?!<p class="test_formal">).)*<span class="test_formal2">.*$" (3 hits in 1 file)
new 2 (3 hits)
Line 2: <span class="test_formal2">
Line 5: <span class="test_formal2"><p class="test_formal">
Line 6: blah blah <span class="test_formal2"><p class="test_formal"> blah blah
Démonstration de Regex101