我需要用正則表達式捕獲標記(HTML)在紅寶石(是的,我知道這是不好的,但我還沒有找到任何替代品,因爲原始標記是非常糟糕的格式)。 所以我有一個原文件看起來像這樣:在HTML評論與正則表達式捕獲內容
<h3 class="grey" style="font-size:18pt;"><!-- #BeginEditable "Title" -->Sample Title
<!-- #EndEditable --></h3>
<!-- #BeginEditable "Text" --><p>Foo bar </p>
<p>
</p><ul>
<li>Sample li</li>
<p></p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>Foo bar<span class="blue">Lorem ipsum dolor</span></p></blockquote>
<!-- #EndEditable -->
正如我不能改變原有的標記(!而且沒有意義的類的話),我決定嘗試一些正則表達式魔術。
我試圖捕捉評論中的內容,象這樣一個正則表達式:
<!-- #BeginEditable "(Title|Text|Foo)" -->\s*([^!]+)\s*<!-- #EndEditable -->
顯然,當有標記內!
,但使用.*
捕捉到裏面的內容總是在失敗有失敗是html標記(純文本被捕獲)。我在這裏想念什麼嗎? (?即帶負先行版)
使用'nokogiri'。這是完美的寶石。 –
我懷疑nokogiri會有幫助,因爲我沒有任何容器可以匹配,只有標記中的容器註釋。傑瑞的回答雖然做到了! – Figedi