大家好,我想写一个正则表达式匹配网页源文件中的href中的内容,但结果总是不如人意.
我写的如下: +href *= *["']?\S*["']?[> ]+
匹配下面的字符串时,得出的结果不满意:
<a Href = www.com/h.htm><img width="3"
得出的结果如下:Href = www.com/h.htm><img .但我其实想得到的是这样的结果:Href = www.com/h.htm>谢谢了.P.S. 我认为链接后有空格的话,则认为链接结束,这样是不是不严谨?

解决方案 »

  1.   

    正因为如此,HTML把它们都视作空格,所以你的写法也是不正确的。
      

  2.   

    [\s\S]*(?<res>Href[^<]*)<[\s\S]*
    一直读到“<”号出现之前。看你的要求,也可以读到“>”出现之后:(应该比读到空格要好)
    [\s\S]*(?<res>Href[^>]*>)[\s\S]*
      

  3.   

    \s 包括空格、制表符、换页符等空白字符的其中任意一个
    就楼主所给出的数据,如果要取其href的内容,可以参考下面的方法(?<=<a\s*)Href\s*=\s*\S*\s
     我认为链接后有空格的话,则认为链接结束,这样是不是不严谨?
    ----
    在符合标准的标签中,这是没有问题的