簡體   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