Normal ifade: Bu kelimeleri (dizeleri) içeren belirli html etiketlerini bulun
Bu etiketlerim var:
<span class="text_obisnuit2">* Notă:</span>John Wells - <em>My Dreams</em>, Albatros Books, 1986.</p>
ve bu:
<span class="text_obisnuit1">* Notă:</span>Mariah Carey - <em>Lovers on the road</em>, BackStreet Books, 1965.</p>
Yani, o belirli html etiketlerini bulmak istiyorum <span class="text_obisnuit2">
bu kelimeler (dizeleri) içerir: Albatros
ve <em>
ve </em>
(ilk satır)
Yanıtlar
Bu basit bir yöntemdir, ancak "Albatros" un <em>
etiketinden sonra gelmesini gerektirir ( demo ):
(<span class="text_obisnuit2">).*<em>.*<\/em>.*Albatros.*
Aşağıdakiler hangi sırayla oldukları umurunda değil ( demo ):
(<span class="text_obisnuit2">).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Burada, sonraki rakamların text_obisnuit
önemli olmadığı ve tüm span
etiketin ilk grup ( demo ) olarak yakalandığı başka bir varyasyon :
(<span class="text_obisnuit\d+">.*<\/span>).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)
Tüm normal ifadeler, girişlerin her birinin dosyada kendi satırında olduğunu varsayar. Belki de için algılamak için daha mantıklı <p>
ve </p>
sınırları gibi, ama bunun için de giriş dosyasından daha büyük bir alıntıyı olması gerekir.
- Ctrl+F
- Ne buldun:
<span class="text_obisnuit2">(?=.*?<em>.*?</em>)(?=.*?\bAlbatros\b).*$
- KONTROL Et Etrafı sarın
- KONTROL Normal ifade
- DENETİMİ KALDIR
. matches newline
- Find All in Current Document
Açıklama:
<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
Ekran görüntüsü:
