[Python] Ricerca e sostituzione con regex

Daniele Zambelli daniele.zambelli a gmail.com
Dom 16 Giu 2019 17:50:20 CEST


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,


Maggiori informazioni sulla lista Python