2012-08-14 30 views
0

如何防止鏈接搜索溢出標籤?如何防止鏈接搜索溢出標籤?

我有一個本地網站,其網頁包含各種類的超鏈接,並希望知道如何防止搜索結果溢出幾個標籤。 (我需要做特定鏈路類型的地址的批量修改。)

例如,我的頁面可能包含的鏈接,如

Best solution:<br> 
<a href="aaa.html" class="xxx">AAA</a><br> but see also 
<a href="bbb.html" class="yyy">BBB</a><br> and 
<a href="ccc.html" class="zzz">CCC</a><br>. 

名單現在,當我嘗試搜索網站只類「ZZZ」的使用正則表達式搜索詞

<a href="+[].html" class="zzz"> 
鏈接

我的結果包括長字符串,例如

<a href="aaa.html" class="xxx">AAA</a><br> but see also <a href="bbb.html" class="yyy">BBB</a><br> and <a href="ccc.html" class="zzz>

發生的事情是,搜索引擎(Funduc搜索&替換,如果有幫助)找到第一個鏈接(aaa.html)的<a href=,第三個鏈接(ccc.html)的匹配類,並且包含兩者之間的一切。

我必須使用什麼表達式來確保文件與正確類的鏈接,而不是其他任何內容出現在搜索結果中?

例如,

<a href="ccc.html" class="zzz> 

感謝您的幫助。

+1

這是什麼樣的正則表達式? – nhahtdh 2012-08-14 08:45:44

+0

我希望我知道。我搜索了Funduc的網站,幫助指南和網站,但沒有發現它是什麼類型。它看起來不是完全標準的。 – maximus 2012-08-14 09:06:48

回答

0

使用DOM庫(最好是支持XPath的庫)而不是正則表達式。正則表達式不適合處理HTML。

+0

儘管如此,數據提取仍然可以。廣泛的操作將需要解析器。 – nhahtdh 2012-08-14 08:46:37

+0

迄今爲止沒有運氣使用Funduc。對於HTML的這種「通配符」操作,ppl推薦什麼? – maximus 2012-08-14 09:24:21

+0

我傾向於[Perl](http://www.perl.org/get.html)和[HTML :: TreeBuilder :: XPath](https://metacpan.org/module/HTML::TreeBuilder::XPath ) – Quentin 2012-08-14 09:29:46

0

+對於一個或多個事件的修改器,渴望在大多數正則表達式引擎中匹配。這意味着,[a-z]+表示「儘可能多地匹配a或b或...或z」。

對於惰性匹配,Perl正則表達式引擎有一個特殊的修飾符+?,所以[a-z]+?表示「匹配a..z越少越好」。

簡單地說,你可以在 「任何字符」 排除">匹配:

[^">]+ 

正則表達式將是這樣的:

<a href="([^">]+.html)" class="zzz"> 

更一種高精度的perl版本:

<a\s+.*?\bhref\s*=\s*"(.+?\.html)"\s*class\s*=\s*"zzz".*?> 

這裏爲()爲捕獲組。

我還沒有試過Funduc Search and Replace for Windows,希望它有效。

+0

我不認爲Perl在這裏工作得很好。使用你的第一個建議有一些改進,而沒有第二個建議。在Funduc S&R中,搜索和替換術語使用不同的運營商。無論如何感謝您的迴應。 – maximus 2012-08-14 09:23:53

+0

恩..「沒有第二個」,你的意思是第三個?那麼,我給Perl版本並不意味着你需要使用Perl,而是一些實用程序支持Perl風格的正則表達式。 (例如UltraEdit)。 – 2012-08-16 00:57:37