PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ist ein Guru für Reguläre Ausdrücke unter euch?



typo
22-07-2009, 16:06
Hallo,
ich möchte in meinem Tex-File alle \footcites durch \footnote{\cite ersetzen. Dabei sollen natürlich Seitenzahlen und Quellen übernommen werden. Auf ein Minmalbeispiel verzichte ich hier mal :)

Folgende Umwandlungen möchte ich vornehmen:
\footcite[Vgl.][50]{regexguru2009} -> \footnote{\cite[Vgl.][50]{regexguru2009}}
\footcite[50]{regexguru2009} -> \footnote{\cite[50]{regexguru2009}}
\footcite{regexguru2009} -> \footnote{\cite{regexguru2009}}

Bei normalem Suchen und Ersetzen ist jeweils die letzte geschweifte Klammer das Problem. Das sollte sich doch durch reguläre Ausdrücken bewerkstelligen lassen... nur wie?

Mein Editor unterstützt RegEx-Suchen und Ersetzen, aber welche Parameter ich dort für diese Umwandlung eingeben muss, weiss ich leider nicht. Kennt sich jemand damit aus? Ist vielleicht ein Regular Expressions Experte unter euch, der schnell helfen kann?

Vielen Dank im voraus!
typo

DieterH
22-07-2009, 18:01
1.) \footcite[Vgl.][50]{regexguru2009} -> \footnote{\cite[Vgl.][50]{regexguru2009}}

2. \footcite[50]{regexguru2009} -> \footnote{\cite[50]{regexguru2009}}

3.) \footcite{regexguru2009} -> \footnote{\cite{regexguru2009}}


Der folgende SED-Ausdruck leistet das Gewünschte:
sed -e 's/\\footcite[^{}]\{0,\}{[^{}]\{1,\}/&}/g' -e 's/\\footcite/\\footnote{\\cite/g'



zu 1.)
echo "\\footcite[Vgl.][50]{regexguru}" | sed -e 's/\\footcite[^{}]\{0,\}{[^{}]\{1,\}/&}/g' -e 's/\\footcite/\\footnote{\\cite/g'
---> \footnote{\cite[Vgl.][50]{regexguru}}

zu 2).
echo "\\footcite[50]{regexguru}" | sed -e 's/\\footcite[^{}]\{0,\}{[^{}]\{1,\}/&}/g' -e 's/\\footcite/\\footnote{\\cite/g'
---> \footnote{\cite[50]{regexguru}}


zu 3.)
echo "\\footcite{regexguru}" | sed -e 's/\\footcite[^{}]\{0,\}{[^{}]\{1,\}/&}/g' -e 's/\\footcite/\\footnote{\\cite/g'
---> \footnote{\cite{regexguru}}

typo
22-07-2009, 18:11
Ich bin beeindruckt, vielen Dank für die schnelle Hilfe!