【发布时间】:2015-04-20 06:15:24
【问题描述】:
今天,我很高兴在此处为我的第一篇帖子找到了解决方案: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)}\\
【问题讨论】:
-
所有名字都至少有 3 个字母吗?此外,从您的问题中还不清楚您的输入是什么以及您想要的输出是什么......
-
@beerbajay 我已经编辑了我的问题。
-
是不是'2. Könige' => '2Köng'。如果是这样,则不能使用正则表达式导出缩写形式。
-
很好,@CoronA。在这种情况下,我的回答会产生
2Kön。 -
@CoronA 我纠正了错字。
标签: regex