编写自定义正则表达式

时间:2013-05-01 12:42:27

标签: asp.net regex

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

1。class="r"><a href="已修复 2. http://www.hihostels.com/是变量
3. "已修复

1 个答案:

答案 0 :(得分: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="后跟您要捕获的字符串来实现,在这种情况下,您正在寻找所有非双引号字符[^"]*直到它达到双重qoute。