Menu
Coddy logo textTech

Wyprzedzenia

Lekcja 20 z 28 w kursie Wyrażenia regularne w Pythonie w Coddy.

Asercje typu lookahead pozwalają dopasować grupę znaków tylko wtedy, gdy następuje po niej określony wzorzec (pozytywny lookahead) lub gdy nie następuje po niej określony wzorzec (negatywny lookahead). Lookahead nie zużywa znaków w ciągu, a jedynie sprawdza, czy dopasowanie jest możliwe.

  • Pozytywny lookahead <strong>(?=...)</strong>: Dopasowuje grupę znaków tylko wtedy, gdy następuje po niej określony wzorzec.
  • Negatywny lookahead <strong>(?!...)</strong>: Dopasowuje grupę znaków tylko wtedy, gdy nie następuje po niej określony wzorzec.
import re

text = "foo1 foo2 foo3 foo"
pattern_positive = r"foo(?=\d)"
pattern_negative = r"foo(?!\d)"

matches_positive = re.findall(pattern_positive, text)
matches_negative = re.findall(pattern_negative, text)

print("Matches with positive lookahead:", matches_positive)  # Wynik: ['foo', 'foo', 'foo']
print("Matches with negative lookahead:", matches_negative)  # Wynik: ['foo']

W powyższym przykładzie wzorzec foo(?=\d) dopasowuje „foo” tylko wtedy, gdy następuje po nim cyfra, natomiast wzorzec foo(?!\d) dopasowuje „foo” tylko wtedy, gdy nie następuje po nim cyfra.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję o nazwie find_numbers_followed_by_words, która przyjmuje ciąg tekstowy jako dane wejściowe i zwraca listę liczb, po których występuje słowo.

Spróbuj swoich sił

import re

def find_numbers_followed_by_words(text):
    # Napisz kod tutaj

Wszystkie lekcje w sekcji Wyrażenia regularne w Pythonie

Poćwicz samodzielnie: Kompilator Python online