[Python] Ricerca e sostituzione con regex
Daniele Zambelli
daniele.zambelli a gmail.com
Mar 18 Giu 2019 15:15:53 CEST
Il giorno mar 18 giu 2019 alle ore 12:23 Marco Beri
<marcoberi a gmail.com> ha scritto:
>
> On Tue, Jun 18, 2019 at 11:57 AM Daniele Zambelli <daniele.zambelli a gmail.com> wrote:
>>
>>
>> ## result = re.sub(r'\\\$', r'd_o_ll_a_ro', string, flags=re.S)
>> result = re.sub(r'(?<!\\)\$\$(.[^\$\$]*)(?<!\\)\$\$',
>> [...]
Ok, lasciato un solo carattere e funziona in tutti i casi in cui
funzionava prima.
Ma non riesco a capire perché se nell'espressione c'è la stringa "\$"
la seguente istruzione non riconosce l'intera espressione:
...
>>> print(translate(r'espressione con dollaro:~$3^2+4^2=\$5^2$'))
espressione con dollaro:~\(3^2+4^2=\$5^2\)
"""
result = re.sub(r'(?<!\\)\$\$(.[^\$]*)(?<!\\)\$\$',
r'\[\1\]',
string.rstrip(), flags=re.S)
result = re.sub(r'(?<!\\)\$(.[^\$]*)(?<!\\)\$',
r'\(\1\)',
result, flags=re.S)
Il test mi dà:
Failed example:
print(translate(r'espressione con dollaro:~$3^2+4^2=\$5^2$'))
Expected:
espressione con dollaro:~\(3^2+4^2=\$5^2\)
Got:
espressione con dollaro:~$3^2+4^2=\$5^2$
Qualche suggerimento?
--
Daniele
www.fugamatematica.blogspot.com
giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
Maggiori informazioni sulla lista
Python