Il giorno lun 17 giu 2019 alle ore 23:16 Marco Beri
ha scritto:
> [...]
> Positive and Negative Lookbehind
>
> Lookbehind has the same effect, but works backwards. It tells the regex
> engine to temporarily step backwards in the string, to check if the text
> inside the lookbehind can be matched there. (? preceded by an "a", using negative lookbehind. It doesn't match cab, but
> matches the b (and only the b) in bed or debt. (?<=a)b(positive lookbehind)
> matches the b (and only the b) in cab, but does not match bed or debt.
Grazie per la grande disponibilità!
Ora i dollari esterni alle espressioni vengono riconosciuti regolarmente,
Ma se il dollaro è all'interno di un'espressione la sostituzione non
viene fatta.
Per comodità copioincollo l'intero programmino con i test compresi:
8<---
import re
def translate(string):
"""translate:
"" > "\[\]"
"$$" > "\(\)"
>>> print(translate(r''))
\[\]
>>> print(translate(r'$$'))
\(\)
>>> print(translate(r'$$a^2=b^2+c^2$$'))
\[a^2=b^2+c^2\]
>>> print(translate(r'$\frac{3+x}{x}$'))
\(\frac{3+x}{x}\)
>>> print(translate(r'''$$
... a^2=b^2+c^2
... $$'''))
\[
a^2=b^2+c^2
\]
>>> print(translate(r'primo:~$2$; secondo: $5$; terzo:~$7$'))
primo:~\(2\); secondo: \(5\); terzo:~\(7\)
>>> print(translate(r'dollaro: \$ espressione senza dollaro:~$3^2+4^2=5^2$'))
dollaro: \$ espressione senza dollaro:~\(3^2+4^2=5^2\)
>>> print(translate(r'''dollaro: \$, espressione senza \$:
... $$a^2=b^2+c^2$$'''))
dollaro: \$, espressione senza \$:
\[a^2=b^2+c^2\]
>>> print(translate(r'''dollaro: \$, espressione con \$:
... $$a^2=\$b^2+c^2$$'''))
dollaro: \$, espressione con \$:
\[a^2=\$b^2+c^2\]
>>> print(translate(r'dollaro: \$ espressione con dollaro:~$3^2+4^2=\$5^2$'))
dollaro: \$ espressione con dollaro:~\(3^2+4^2=\$5^2\)
"""
##result = re.sub(r'\\\$', r'd_o_ll_a_ro', string, flags=re.S)
result = re.sub(r'(?8
Penso che l'errore sia nell'espressione all'interno della quadra:
[^(?https://lists.python.it/mailman/listinfo/python