Menu
Coddy logo textTech

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