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.
Sfida
FacileScrivi 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 quiTutte le lezioni di Espressioni regolari in Python
1Introduzione
Introduzione3Sintassi di base dei pattern
Metacaratteri di baseLetteraliClassi di caratteriIntervalliClassi predefinite comuniClassi predefinite avanzateEsercitati da solo: Compilatore Python online