[Python] Ricerca e sostituzione con regex

Lorenzo Buonanno buonanno.lorenzo a gmail.com
Dom 16 Giu 2019 18:30:51 CEST


Prova una cosa come

import re
first_substitution = re.sub(r"\$\$(.*?)\$\$", r"\[\1\]", input_text,
flags=re.S)
final_text = re.sub(r"\$(.*?)\$", r"\(\1\)", first_substitution, flags=re.S)

On Sun, Jun 16, 2019 at 3:50 PM Daniele Zambelli <daniele.zambelli a gmail.com>
wrote:

> Il giorno dom 16 giu 2019 alle ore 14:06 Giovanni Vittorio Spina
> <vittorio.spina a gmail.com> ha scritto:
> >
> > Ponendo ad esempio
> > a = "$$<formula>$$ pippo $<formula>$"
> >
> > Si può avere il testo corretto con il seguente comando
> > b = a.replace(“$$<“,  "\\[<“).replace(“>$$”, “>\\]").replace(“$<”,
> “\\(<”).replace(“>$”, “>\\)”)
>
> Grazie per le indicazioni, però non mi sono spiegato bene. Con
> "<formula>" intendevo una qualunque formula matematica LaTeX:
>
> Il testo da modificare potrebbe essere:
>
> \begin{definizione}
> $$
> m \times n = \begin{cases}
>  0 & se \quad n = 0\\
>  m & se \quad n = 1\\
>  \underbrace{m + m + \dots + m}_{\text{n volte}} & \mbox{ negli altri casi}
> \end{cases}$$
> \end{definizione}
>
> \begin{itemize*}
>  \item \emph{Commutativa}: $a \cdot b = b \cdot a$
>  \item \emph{Associativa}: $(a \cdot b) \cdot c = a \cdot (b \cdot c)$
>  \item \emph{Elemento neutro} $a \cdot 1 = 1 \cdot a = a$
> \end{itemize*}
>
> \begin{definizione}
> Dati due numeri naturali~$m$ e~$n$, con~$n \neq 0$, la divisione associa
> un terzo numero naturale~$q$, se esiste, che moltiplicato per ad~$n$ dà
> come prodotto~$m$.
> Si scrive~$n : m = q$.
> \end{definizione}
>
> e dovrebbe diventare:
>
> \begin{definizione}
> \[
> m \times n = \begin{cases}
>  0 & se \quad n = 0\\
>  m & se \quad n = 1\\
>  \underbrace{m + m + \dots + m}_{\text{n volte}} & \mbox{ negli altri casi}
> \end{cases}\]
> \end{definizione}
>
> \begin{itemize*}
>  \item \emph{Commutativa}: \(a \cdot b = b \cdot a\)
>  \item \emph{Associativa}: \((a \cdot b) \cdot c = a \cdot (b \cdot c)\)
>  \item \emph{Elemento neutro} \(a \cdot 1 = 1 \cdot a = a\)
> \end{itemize*}
>
> \begin{definizione}
> Dati due numeri naturali~\(m\) e~\(n\), con~\(n \neq 0\), la divisione
> associa
> un terzo numero naturale~\(q\), se esiste, che moltiplicato per ad~\(n\) dà
> come prodotto~\(m\).
> Si scrive~\(n : m = q\).
> \end{definizione}
>
> Quindi dovrei identificare una coppia di coppie di dollari e
> trasformare la prima con la stringa: "\[" e la seconda con la stringa
> "\]":
>
> $$a^2=b^2+c^2$$   --->   \[a^2=b^2+c^2\]
> e
> $5+7=12$   --->   \(5+7=12\)
>
> È per questo che pensavo fosse più un lavoro da espressioni regolari
> che da semplice sostituzione.
>
> Grazie.
>
> --
>
> Daniele
>
> www.fugamatematica.blogspot.com
>
>     giusto!
>     nel verso
>     forse è perché non guardiamo le cose
>     Quando non ci capiamo,
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20190616/343015c0/attachment.html>


Maggiori informazioni sulla lista Python