Menu
CoddyTech

Lookahead

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

Le asserzioni lookahead consentono di trovare una corrispondenza con un gruppo di caratteri solo se è seguito (lookahead positivo) o non seguito (lookahead negativo) da uno schema specifico. I lookahead non consumano caratteri nella stringa: verificano soltanto se è possibile trovare una corrispondenza.

  • Lookahead positivo <strong>(?=...)</strong>: trova una corrispondenza con un gruppo di caratteri solo se è seguito da uno schema specifico.
  • Lookahead negativo <strong>(?!...)</strong>: trova una corrispondenza con un gruppo di caratteri solo se non è seguito da uno schema specifico.
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)  # Salida: ['foo', 'foo', 'foo']
print("Matches with negative lookahead:", matches_negative)  # Salida: ['foo']

Nell'esempio precedente, lo schema foo(?=\d) trova una corrispondenza con "foo" solo se è seguito da una cifra, mentre lo schema foo(?!\d) trova una corrispondenza con "foo" solo se non è seguito da una cifra.

challenge icon

Sfida

Facile

Scrivi una funzione chiamata find_numbers_followed_by_words che accetta una stringa di testo come input e restituisce un elenco di numeri seguiti da una parola.

Provalo tu

import re

def find_numbers_followed_by_words(text):
    # Scrivi il codice qui

Tutte le lezioni di Espressioni regolari in Python

Esercitati da solo: Compilatore Python online

Prova un pattern sul tuo testo: Tester di regex