今天,我很高兴我在这里找到了第一篇文章的解决方案:Find and replace a specific reference pattern by a regular expression。
我想替换以下条目(以及我的文档中的更多这些类型),以便(数字1,2,3,4或5,仅当存在,加上)前三个字母字母在textit之后写在括号中。必须附加初始表达式。
输入:
\nobreakword{(vgl. 1. Johannes 4,16)}
\nobreakword{(vgl. Daniel 4,15.17.32f.)}
\nobreakword{(vgl. 2. Könige 7,7)}
=>输出:
\index[bibel]{@1. Johannes!\textit{1Joh 4,16}}\nobreakword{(vgl. 1. Johannes 4,16)}
\index[bibel]{@Daniel!\textit{Dan 4,15.17.32f.}}\nobreakword{(vgl. Daniel 4,15.17.32f.)}
\index[bibel]{@2. Könige!\textit{2Könige 7,7}}\nobreakword{(vgl. 2. Könige 7,7)}
括号内还有ä/ö/ü字符。
我想要包含在下一行写入数字部分的模式(因为复制粘贴),文本和数字之间有一个ENTER(空格/许多空白字符)。
\nobreakword{(vgl.
1. Korinther 13,4-7.8-12)} => \index[bibel]{@1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
\nobreakword{(vgl. 1.
Korinther 13,4-7.8-12)} => \index[bibel]{@1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
\nobreakword{(vgl. 1. Korinther
13,4-7.8-12)} => \index[bibel]{@1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
我还有其他不应更改的文字:
\index[stichwort]{Begriffe!Zeichen} => \index[stichwort]{Begriffe!Zeichen}
\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Abraham} => \index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Abraham}
如果可能,我想再次使用https://regex101.com
我尝试过(没有成功):
\\nobreakword{(vgl. (\d+)(?:\.\s+))?(.{3})[\s\S]*?([a-z0-9.,-]+)}
是否可以使用单个搜索模式+单个替换模式和正则表达式来一步替换所有示例?
修改
所有名称“Johannes”,“Daniel”,“Könige”,“Korinther”等至少有3个字符。
我想输入以下测试字符串:
\chapter{Gottes Liebesbeweis an uns Menschen}
\begin{flushright}\footnotesize\textit{ursprünglicher Beitrag vom 29. April 2014 überarbeitet}\end{flushright}
- Gott ist Liebe. \nobreakword{(vgl. 1. Johannes 4,16)}\\
- Jesus Christus ist der Erstgeborene der gesamten Schöpfung. (vgl. Kolosser 1,15-17) \index[bibel]{51@Kolosser!\textit{Kol 1,15-17}}
\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Erstgeburt/Erstgeborener}\\
- Im Anfang, nachdem Jesus war, schuf Gott Himmel und Erde. (vgl.
1. Mose 1,1)\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Himmel}\\
- Liebe braucht ein Gegenüber: Gott hat den Menschen geschaffen nach
dem Bild von Gott, der fähig war, Liebe zu empfinden und zurückzulieben.
\nobreakword{(vgl. 1. Mose 1,26)}\\
- Echte Liebe kann nur bedingungslos sein und muss dem Gegenüber erlauben,
sich gegen die Liebe zu entscheiden. \nobreakword{(vgl. 1. Korinther 13,4-7)}\\
- Gott erwählte Jesus bereits vor Erschaffung des Menschen, weil ER
bereits zu Anbeginn der Zeit wusste, dass alle Menschen Unrecht tun
werden und Rettung benötigen. \nobreakword{(vgl. Epheser 1,3-4)}
\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Gott kann alles tun, was ER tun möchte \nobreakword{(vgl. Daniel 4,32)}\\
- Gott erlaubt jedem seiner Geschöpfe die Entscheidung, ob es mit
IHM - genauer: in IHM - leben möchte oder nicht: Ein Engel Gottes
in niedriger Stellung in einem der Himmel wollte sich dem Allerhöchsten
gleich machen in dem dieser Engel zum einen Himmel emporsteigt und
ist bei diesem Vorgehen hinabgestürzt. \nobreakword{(vgl. Jesaja 14,12-14)}\\
- Liebe ist bereit ein Risiko einzugehen: Gott überlässt seinen Geschöpfe
gewisse Entscheidungen. \nobreakword{(vgl. 1. Mose 2,16-17)}\\
- Der gefallene Engel hatte die Macht Adam und Eva zu versuchen. (vgl.
1. Mose 3,1)\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Adam}\\
- Adam und Eva wollten sein wie Gott, sie wollten dieselbe Erkenntnis
haben wie Gott. \nobreakword{(vgl. 1.Mose 3,5)}\\
- Gottes Gedanken, Wege, Weisheit und Erkenntnis sind unbeschreibbar
viel grösser als die unseren. \nobreakword{(vgl. Römer 11,33)}\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Weg}\\
- Gott lässt sich nicht über eine bestimmte Anzahl von Bildern definieren;
Gott spricht: "Ich bin, der ich bin".
\nobreakword{(vgl. 2. Mose 3,14)}\\
- Wir haben uns vor Gott getrennt, weil wir selbst unabhängig sein
wollten, anstatt IHM ganz zu vertrauen und gehorchen. \nobreakword{(vgl. Römer 3,12)}\\
- Als Folge des Sündenfalls im Garten Eden kam der Tod. \nobreakword{(vgl. Römer 6,23)}\\
- Die Schöpfungsordnung, dass der Mensch und die Tiere sich von Pflanzen
ernähren sollte wurde zerstört. \nobreakword{(vgl. 1. Mose 1,29-30)}\\
- Adam und Eva wurden durch den Ungehorsam Gott gegenüber der Sünde
Sklave der Sünde. \nobreakword{(vgl. Johannes 8,34)}\\
- Die Bosheit der Nachkommen Adam und Eva nahm immer weiter zu, dass
sich nach meiner Auslegung gefallene Engel Gottes mehreren Frauen
paarten und ihnen Riesen gebaren, wonach auch Gottes Gericht - die
Sintflut - kam. \nobreakword{(vgl. 1. Mose 6, 1-7)} \index[stichwort]{Begriffe!Zorn/Gericht/Vergeltung/Hölle/Tod}\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Sintflut}\\
- Alle Menschen sind schuldig geworden, und werden durch den Glauben
an IHN ohne Verdienst gerecht gesprochen. \nobreakword{(vgl. Römer 3,23-28)}
\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Jeder Mensch kommt schuldig zur Welt. \nobreakword{\nobreakword{(vgl. Psalm 51,7)}}\\
- Ein Gläubiger darf bei verstorbenen Säuglingen die Hoffnung haben
nach dem irdischen Leben wieder bei diesem Menschen zu sein, selbst
wenn der Säugling zu Lebzeiten nicht die Möglichkeit hatte sich für
oder gegen Gott zu entscheiden. \nobreakword{(vgl. 2. Samuel 12,21-23)}\\
- Gott ist vollkommen gerecht. \nobreakword{(vgl. 5. Mose 32,4)}\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Gott kann keine Gemeinschaft mit Sündern haben, sodass es zwischen
IHM und den Menschen eine Trennung geben musste. \nobreakword{\nobreakword{(vgl. Jesaja 59,2)}}\\
- Gott möchte eine persönliche Beziehung zu uns Menschen haben. \nobreakword{(vgl.
Johannes 17,3)}\\
答案 0 :(得分:2)
正则表达式:
\\nobreakword\{\(vgl\.\s+(([0-9]*)\.\s+)?((\S\S\S)\S*)\s+([^)]*)\)\}
替换:
\\index[bibel]{@\1 \3!\\textit{\2\4 \5}}\0
一般来说,这是修复Latex中引用的一种可怕方法。您应该定义生成正确输出的函数,这样您就可以在需求发生变化时集中编辑格式。
答案 1 :(得分:2)
您的方法是正确的...除了少量修改。您可以使用:
(\\nobreakword{\(vgl\.\s*((\d+)(?:\.\s+))?((.{3}).+?\b)[\s\S]*?([a-z0-9.,-]+)\)})
并替换为\\index[bibel]{@$2$4!\\textit{$3$5 $6}}$1
请参阅DEMO