繁体   English   中英

需要帮助来创建正则表达式或脚本以在html文件上运行

[英]Need help creating a regex or script to run on html file

因此,我有了正在处理的索引,但我真的发现手动输入和交叉链接所有内容很麻烦。 我对正则表达式和perl有所了解。 这是HTML的样子

cf. <i>Penitencia y Reconciliaci&oacute;n</i>

但是有时候有一个例子

cf. <i>Advenimiento, Consumaci&oacute;n, Expectaci&oacute;n</i>;

我在上面运行了这个正则表达式:

cf\. <i>([^,]+,)</i>

但我的目标是能够运行一个可将一个或多个单词环绕的正则表达式,然后复制“词组”的内部HTML并将其粘贴到类似这样的锚标记中

cf. <i><a href="#Penitencia y Reconciliaci&oacute;n">Penitencia y Reconciliaci&oacute;n</a></i>

我可以使用上述正则表达式来完成; 但是问题是我的正则表达式没有考虑到可能需要包装两个“短语”。 所以我的总体目标是最终做到这一点:

cf. <i><a href="#Advenimiento">Advenimiento</a>, <a href="#Consumaci&oacute;n">Consumaci&oacute;n</a>, <a href="#Expectaci&oacute;n">Expectaci&oacute;n</a></i>;

任何帮助将非常感激

在创建一个使之自动化的程序的上下文中,更好,更困难,更快,更强大的解决方案将是-我同意OP的意见-是使用DOM查找/解析/查询标签,获取值,然后修改并重写它们。 我从您的特定示例假设这是一次性的查找和替换,或者您不介意的事情-偶尔偶尔手动运行一次替换...

Perl s //-表达式(在这种情况下,我猜是p !!-expression),仅在仿真器中进行了测试:

s!(?<=,)(\s?)([^<,]+)(?=,|</i>)|(?<=<i>)([^<,]+)(?=,|</i>)!$1<a href="#$2$3">$2$3</a>!i

请记住,按照书面规定,这只会匹配<i>标记中包含的项目,并且当然不能容忍它们之间的其他标记-只是一些您不应该将其放入程序代码中的原因...

该表达式将显示以下HTML:

Parte del texto inicial. <i>Penitencia y Reconciliaci&oacute;n</i> 
<i>Advenimiento, Consumaci&oacute;n, Expectaci&oacute;n</i>; Otro texto que <em>no es especial</em> ... <i>Otra etiqueta que debe estar vinculada</i>
Otra l&iacute;nea <i>con un enlace</i> y un texto m&aacute;s.

变成这段文字:

Parte del texto inicial. <i><a href="#Penitencia y Reconciliaci&oacute;n">Penitencia y Reconciliaci&oacute;n</a></i> 
<i><a href="#Advenimiento">Advenimiento</a>, <a href="#Consumaci&oacute;n">Consumaci&oacute;n</a>, <a href="#Expectaci&oacute;n">Expectaci&oacute;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&iacute;nea <i><a href="#con un enlace">con un enlace</a></i> y un texto m&aacute;s.

附带说明一下,您的问题很难阅读,可能还应该标记为[perl] 这可能是造成它被暂时拒绝的重要原因……但是迟到总比没有好!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM