"href=\"?(.*?)(\"|>|\\s+)"
是提取html里的网页的,但是分组有点奇怪啊!

解决方案 »

  1.   

    1.href=
    2."?指"可有可无
    3.(.*?)指随便一组字符
    4.(\" ¦> ¦\\s+)指3上面那组字符跟着"|>|;\\s+表示一个或多个分隔符 
      

  2.   

    以“開頭+任何東西+”或>+任何東西(小s)+“
    大s的話是任何非空的東西大概哦~
      

  3.   

    第一个分组是任意串
    第二个分组或是引号或是大于号或一串White Spaces
      

  4.   

    这个可以匹配 href 中带引号和不带引号的地址(\"|>|\\s+)地址可以以引号、> 和空格作为结束,即可以匹配:引号结束:<a href="www.google.com">
    括号结束:<a href=www.google.com>
    空格结束:<a href=www.google.com target="_blank">但是这个也能匹配:<a href="www.google.com>
    <a href=www.google.com">这种不符合规范的格式。
      

  5.   

    第二个分组不需要被捕获,建议改成非捕获组格式:href=\"?(.*?)(?:\"|>|\\s+)
      

  6.   

    "href=\"?(.*?)(\" ¦> ¦\\s+)" 
    把它拆开
    \"?             匹配"的 但是可以有也可以没有,”\“是个 转译符
    (.*?)           是匹配除了”\n“(回车)之外的所有字符,不论多少个字符
    (\" ¦> ¦\\s+)   其中¦是或者的意思,匹配 " 或者 > 或者 空格、制表符、换页符等等例子4楼都已经举了
    参考  http://blog.csdn.net/kevinsin/archive/2005/04/21/356861.aspx