2012-03-07 13 views

risposta

11

Il motore regex di Python non supporta quelli; vedere §7.2.1 "Regular Expression Syntax" in the Python documentation per un elenco di cosa è il supporto . Tuttavia, è possibile ottenere lo stesso effetto scrivendo re.match(re.escape("bla"), "bla"); re.escape è una funzione che inserisce i backslash prima di tutti i caratteri speciali.

A proposito, si dovrebbe in genere utilizzare stringhe "grezzi", r"..." invece di solo "...", altrimenti backslash avranno elaborato due volte (una volta quando la stringa viene analizzata, e poi di nuovo dal motore regex), il che significa che scrivere cose come \\b anziché \b. L'utilizzo di r"..." impedisce il primo passaggio di elaborazione, quindi è sufficiente scrivere \b.

+1

Grazie. Mi aspetterei di ottenere un'eccezione quando si inserisce un'espressione regolare non supportata. Oh aspetta, questo è pitone ... – wafwaf

+0

Prego. E sì . . Capisco perché la gente ama così tanto Python, ma. . . – ruakh

+0

@ruakh Non è per le regex, credimi. :) – tchrist

1

Sfortunatamente, Python non supporta le sequenze di escape \Q e \E. Devi solo sfuggire a tutto te stesso.

+0

-1: ci sono stringhe crude e re.escape –