Menu
Coddy logo textTech

Lookbehind

Lezione 21 di 28 del corso Espressioni regolari in Python di Coddy.

I lookbehind sono asserzioni che consentono di trovare una corrispondenza con un gruppo di caratteri solo se sono preceduti (lookbehind positivo) o non preceduti (lookbehind negativo) da uno specifico pattern. Come i lookahead, i lookbehind non consumano caratteri nella stringa.

  • Lookbehind positivo <strong>(?<=...)</strong>: Trova una corrispondenza con un gruppo di caratteri solo se è preceduto da uno specifico pattern.
  • Lookbehind negativo <strong>(?<!...)</strong>: Trova una corrispondenza con un gruppo di caratteri solo se non è preceduto da uno specifico pattern.
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)  # Output: ['foo']
print("Matches with negative lookbehind:", matches_negative)  # Output: ['foo', 'foo', 'foo']

Nell'esempio precedente, il pattern (?<=\d)foo trova una corrispondenza con "foo" solo se è preceduto da una cifra, mentre il pattern (?<!\d)foo trova una corrispondenza con "foo" solo se non è preceduto da una cifra.

challenge icon

Sfida

Facile

Scrivi una funzione denominata find_words_preceded_by_numbers che accetta una stringa di testo in input e restituisce un elenco di parole precedute da un numero.

Provalo tu

import re

def find_words_preceded_by_numbers(text):
    # Scrivi il codice qui

Tutte le lezioni di Espressioni regolari in Python

Esercitati da solo: Compilatore Python online