Menu
Coddy logo textTech

Sprawdzenia wsteczne

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

Wyrażenia typu lookbehind to asercje, które pozwalają dopasować grupę znaków tylko wtedy, gdy jest ona poprzedzona (pozytywne lookbehind) lub nie jest poprzedzona (negatywne lookbehind) określonym wzorcem. Podobnie jak wyrażenia typu lookahead, lookbehind nie zużywają znaków w ciągu.

  • Pozytywne lookbehind <strong>(?<=...)</strong>: Dopasowuje grupę znaków tylko wtedy, gdy jest ona poprzedzona określonym wzorcem.
  • Negatywne lookbehind <strong>(?<!...)</strong>: Dopasowuje grupę znaków tylko wtedy, gdy nie jest ona poprzedzona określonym wzorcem.
import re

text = "1foo 2foo 3foo foo"
pattern_positive = r"(?<=\d)foo"
pattern_negative = r"(?<!\d)foo"

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

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

W powyższym przykładzie wzorzec (?<=\d)foo dopasowuje „foo” tylko wtedy, gdy jest poprzedzone cyfrą, podczas gdy wzorzec (?<!\d)foo dopasowuje „foo” tylko wtedy, gdy nie jest poprzedzone cyfrą.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję o nazwie find_words_preceded_by_numbers, która przyjmuje ciąg tekstowy jako dane wejściowe i zwraca listę słów poprzedzonych liczbą.

Spróbuj swoich sił

import re

def find_words_preceded_by_numbers(text):
    # Wpisz kod tutaj

Wszystkie lekcje w sekcji Wyrażenia regularne w Pythonie

Poćwicz samodzielnie: Kompilator Python online