所以我有这个索引,我正在努力,但我真的觉得手动进入并交叉链接一切都很麻烦。我对regexps和一点perl有点了解。 这是html的样子
cf. <i>Penitencia y Reconciliación</i>
但有时会有这个
的实例cf. <i>Advenimiento, Consumación, Expectación</i>;
我在上面运行了这个正则表达式:
cf\. <i>([^,]+,)</i>
但我的目标是能够运行一个包含一个或多个单词的正则表达式,然后复制“短语”的内部Html并将其粘贴到锚标记内 像这样的东西
cf. <i><a href="#Penitencia y Reconciliación">Penitencia y Reconciliación</a></i>
我能用上面的正则表达式完成;但问题是我的正则表达式是不采取的 考虑到它可能需要包含两个“短语”。所以我的目标是最终得到这个:
cf. <i><a href="#Advenimiento">Advenimiento</a>, <a href="#Consumación">Consumación</a>, <a href="#Expectación">Expectación</a></i>;
任何帮助都会非常感激
答案 0 :(得分:1)
在创建自动化程序的环境中,更好,更难,更快,更强的解决方案 - 我同意对OP的评论 - 是使用DOM查找/解析/查询标签,得到值,然后修改和重写它们。我假设您的具体示例是一次性的查找和替换,或者您不介意的事情 - 每隔一段时间手动运行替换...
一个Perl s // - 表达式(我想p !! - 在这种情况下表达式),它只在模拟器中测试过:
s!(?<=,)(\s?)([^<,]+)(?=,|</i>)|(?<=<i>)([^<,]+)(?=,|</i>)!$1<a href="#$2$3">$2$3</a>!i
请记住,正如所写的那样,这只会匹配<i>
标签中包含的项目,当然也不能容忍它们之间的其他标签 - 只是您不应该将其纳入程序的几个原因代码...
该表达式将转换此HTML:
Parte del texto inicial. <i>Penitencia y Reconciliación</i>
<i>Advenimiento, Consumación, Expectación</i>; Otro texto que <em>no es especial</em> ... <i>Otra etiqueta que debe estar vinculada</i>
Otra línea <i>con un enlace</i> y un texto más.
进入本文:
Parte del texto inicial. <i><a href="#Penitencia y Reconciliación">Penitencia y Reconciliación</a></i>
<i><a href="#Advenimiento">Advenimiento</a>, <a href="#Consumación">Consumación</a>, <a href="#Expectación">Expectación</a></i>; Otro texto que <em>no es especial</em> ... <i><a href="#Otra etiqueta que debe estar vinculada">Otra etiqueta que debe estar vinculada</a></i>
Otra línea <i><a href="#con un enlace">con un enlace</a></i> y un texto más.
作为旁注,你的问题很难阅读,也可能应该被标记为[perl]
;这可能对它暂时没有得到回答有很大帮助......但迟到总比没有好!