정규식: 단어가 포함되지 않은 html 클래스를 선택하세요.

정규식: 단어가 포함되지 않은 html 클래스를 선택하세요.

"neculaifantaru"라는 단어가 포함된 클래스가 없는 모든 파일을 찾고 싶습니다.

나는이 2 개의 HTML 동일한 클래스를 가지고 있습니다 :

<p class="mb-40px">I must go home, but I don't know the road.</p>
<p class="mb-40px">I love myself , because I love nature.</p>
<p class="mb-40px">Cercetare estetică, care poartă <a href="https://neculaifantanaru.com/en/qualities-of-a-leader.html" class="color-bebe" target="_new">lumina artei</a> sinestezice</p>

출력은 다음과 같아야 합니다.

<p class="mb-40px">I must go home, but I don't know the road.</p>
<p class="mb-40px">I love myself , because I love nature.</p>

내 정규식은 그다지 좋지 않습니다.

(?-si:<p class="mb-40px">|(?!\A)\G)(?s-i:(?!</p>).)*?\K(?-si:?!neculaifantanaru)

파이썬에서는 쉽습니다. 하지만 동일한 작업을 수행하려면 정규식이 필요합니다.

import os
import re

# Calea către directorul în care doriți să căutați
cale_director = 'g:/1/GATA ro'

# Parcurgeți toate fișierele din director
for nume_fisier in os.listdir(cale_director):
    cale_fisier = os.path.join(cale_director, nume_fisier)

    # Deschideți fiecare fișier și citiți conținutul acestuia
    with open(cale_fisier, 'r') as fisier:
        continut = fisier.read()

        # Căutați toate tagurile <p class="mb-40px">.*?</p>
        taguri_p = re.findall(r'<p class="mb-40px">(.*?)</p>', continut, re.DOTALL)

        # Verificați dacă există vreun tag care conține cuvântul "neculaifantanaru"
        tag_cu_neculaifantanaru = any('neculaifantanaru' in tag for tag in taguri_p)

        # Verificați dacă nu există niciun tag care să conțină cuvântul "neculaifantanaru"
        if not tag_cu_neculaifantanaru:
            print(f'Fișierul "{nume_fisier}" nu conține niciun tag <p class="mb-40px"> care să includă cuvântul "neculaifantanaru".')

답변1

이것을 시도해 보세요. 작동합니다.

찾다: (?s)\A(?!.*(neculaifantanaru).*$)

<p class="mb-40px">... 와 사이를 통합할 필요가 없는 경우</p>

답변2

  • Ctrl+H
  • 무엇을 찾다:<p class="mb-40px">(?:(?!</p>).)*neculaifantanaru.*?</p>\R?
  • 다음으로 교체:LEAVE EMPTY
  • 진드기 줄 바꿈
  • 선택하다 정규식
  • 진드기 . matches newline
  • Replace all

설명:

<p class="mb-40px">     # literally
(?:                     # non capture group
    (?!                     # negative lookahead, make sure we haven't </p> after
        </p>                    # literally
    )                       # end lookahead
    .                       # any character
)*                      # end group, may appear 0 or more times
neculaifantanaru        # literally
.*?                     # 0 or more any character, not greedy
</p>                    # literally
\R?                     # optional line break

스크린샷(이전):

여기에 이미지 설명을 입력하세요

스크린샷(이후):

여기에 이미지 설명을 입력하세요

관련 정보