-1

我想编写一个自定义正则表达式,格式类似于class="r"><a href="http://www.hihostels.com/"where

1.class="r"><a href="固定
2.http://www.hihostels.com/可变
3."固定

4

1 回答 1

1

我建议您使用 HTMLAgilityPack http://htmlagilitypack.codeplex.com/之类的 HTML 解析引擎。这些解析工具往往有一个相当陡峭的学习曲线,所以如果你正在寻找快速简单的东西,但可能会被边缘情况绊倒,那么请考虑以下通用正则表达式的 powershell 示例:

    $Matches = @()
    $String = '<div class="r"><a href="http://www.hihostels.com/" class="RememberToVote">click me</a></div'
    ([regex]'class="r"><a href="([^"]*)"').matches($String) | foreach {
        write-host "at $($_.Groups[1].Index) = '$($_.Groups[1].Value)'"
        } # next match

产量

at 24 = 'http://www.hihostels.com/'

这通过假设你总是有字符串class="r"><a href="后面跟着你要捕获的字符串来工作,在这种情况下,你正在寻找所有非双引号字符[^"]*,直到它达到双引号。

于 2013-05-01T13:41:17.133 回答