正则表达式替换(如果| then)

时间:2015-02-09 17:16:14

标签: arrays regex notepad++

我在文章中有一些经文参考,我想链接到相邻的经文文件。

示例:

some text (Gen 2:15, 16), other text (Ex 4:12, 13) more.. etc.

我可以使用以下正则表达式替换第一个:

\(<a href="/Verses.php?book=1&chapter=\1&vmin=\2&vmax=\3">Gen \1: \2, \3</a>\)

我在这里修复了&#34; 1&#34; (book =)和&#34; Gen&#34;

但我无法弄清楚如何使用if | then以便我可以给它所有的阵列(Gen | Ex | Lev ..等),以便它用书号替换Gen和#34 ; 1&#34;,Ex&#34; 2&#34; ..等等。

2 个答案:

答案 0 :(得分:0)

您需要在某处定义所有图书订单的内容。而且你需要使用某种脚本语言,而不仅仅是一个普通的旧正则表达式。例如,您可以执行以下操作:

books = ["Gen", "Ex", ..., "Rev"]

...然后将book_name替换为books.index(book_name)+1

确切的代码/语法显然取决于您选择使用哪种语言。

答案 1 :(得分:0)

使用notepad ++,您将无法获得订单号。

但其他一切都是可能的。您需要将每本书放在一个新行上:

找到\),并替换为\n

然后使用这种模式:

[a-z\s]+\(([a-z]+)\s+([0-9:]+)\,\s+([0-9]+)\)

并替换为:

<a href="/Verses.php?book=1&chapter=\1&vmin=\2&vmax=\3">\1: \2, \3</a>

你会得到网址列表。然后,如果需要,您可以合并回一行。

唯一的问题是书号。

演示在这里:https://regex101.com/r/qN8mO7/2

相关问题