정규식 :이 단어 (문자열)를 포함하는 특정 html 태그 찾기

Aug 19 2020

이 태그가 있습니다.

<span class="text_obisnuit2">* Not&#259;:</span>John Wells - <em>My Dreams</em>, Albatros Books, 1986.</p>

그리고 이것:

<span class="text_obisnuit1">* Not&#259;:</span>Mariah Carey - <em>Lovers on the road</em>, BackStreet Books, 1965.</p>

따라서 <span class="text_obisnuit2">다음 단어 (문자열)를 포함 하는 특정 html 태그를 찾고 싶습니다 . Albatrosand <em>and </em>(The first line)

답변

4 Glorfindel Aug 19 2020 at 16:49

이것은 간단하지만 <em>태그 뒤에 'Albatros'가 있어야합니다 ( demo ) :

(<span class="text_obisnuit2">).*<em>.*<\/em>.*Albatros.*

다음은 어떤 순서인지 상관하지 않습니다 ( demo ).

(<span class="text_obisnuit2">).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)

다음은 또 다른 변형으로, 뒤의 숫자 text_obisnuit는 중요하지 않고 전체 span태그가 첫 번째 그룹 ( demo ) 으로 캡처됩니다 .

(<span class="text_obisnuit\d+">.*<\/span>).*(<em>.*<\/em>.*Albatros.*|Albatros.*<em>.*<\/em>.*)

모든 정규식은 항목이 파일의 각 줄에 있다고 가정합니다. 아마도 그것은에 대한 감지 할 더 이해하게 <p>하고 </p>경계로,하지만 그것을 위해 우리는 당신의 입력 파일에서 큰 발췌을해야합니다.

4 Toto Aug 19 2020 at 17:01
  • Ctrl+F
  • 무엇을 찾다: <span class="text_obisnuit2">(?=.*?<em>.*?</em>)(?=.*?\bAlbatros\b).*$
  • 확인
  • 정규식 확인
  • 확인 취소 . matches newline
  • Find All in Current Document

설명:

<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

스크린 샷 :