[Python] regexp e gruppi
Daniele Zambelli
daniele.zambelli a gmail.com
Mar 10 Set 2013 13:10:15 CEST
Salve a tutti.
Ho un problema che forse si può risolvere con una espressione regolare
adatta.
Un testo LaTeX contiene delle definizioni e delle descrizioni come nel
seguente esempio:
Prima delle modifiche:
\begin{description}
\item[{Semiretta}] \leavevmode
Si dice semiretta ciascuna delle due parti in cui una retta
è divisa da un suo punto. Quel punto si chiama \textbf{origine} della
semiretta.
L'origine appartiene alla semiretta.
\end{description}
Esempi
\begin{itemize}
\item {} \begin{description}
\item[{$4 x ^{2 } - 9 = 0$}] \leavevmode
risoluzione
\end{description}
La prima "description" è una definizione, la seconda no.
Io vorrei trasformarlo nel seguente modo:
Dopo le modifiche:
\begin{definizione}
\textbf{Semiretta}
Si dice semiretta ciascuna delle due parti in cui una retta
è divisa da un suo punto. Quel punto si chiama \textbf{origine} della
semiretta.
L'origine appartiene alla semiretta.
\end{definizione}
Esempi
\begin{itemize}
\item {} \begin{description}
\item[{$4 x ^{2 } - 9 = 0$}] \leavevmode
risoluzione
\end{description}
Io avevo pensato alla seguente espressione:
>>> re1 = re.compile(r'\\begin{description}\n\\item\[\{([^\}]+)\}]
\\leavevmode([^(\\end{description})])\\end{description}', re.M)
seguita dalla sostituzione:
>>> re1.sub(r'\\begin{definizione}\n\\textbf{\1}\2\\end{definizione}'
Ho provato anche a sostituire '\n' con '\xe2\x80\xa9':
>>> re1 =
re.compile(r'\\begin{description}\xe2\x80\xa9\\item\[\{([^\}]+)\}]
\\leavevmode([^(\\end{description})])\\end{description}', re.M)
seguita dalla sostituzione:
>>>
re1.sub(r'\\begin{definizione}\xe2\x80\xa9\\textbf{\1}\2\\end{definizione}'
ma la situazione non è migliorata. Ho fatto altre millemila prove che non
sto a riportare, ma evidentemente mi sfugge qualcosa.
Mi rivolgo ai pazienti maghi delle regexp chiedendo qualche aiuto.
Grazie.
--
Daniele
www.fugamatematica.blogspot.com
giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130910/b89f2223/attachment.html>
Maggiori informazioni sulla lista
Python