2012-08-14 43 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