有这样一个正则表达式:
<a\\s+href\\s*=\\s(\"[^\"]*\"|[^\\s>]*)\\s*>
这是表示超链接的一个通用表达式,谁能详细解释一下?

解决方案 »

  1.   

    -以<a 开头
    -中间至少有1个空格,可以有多个    对应\\s
    -接下来有一个href    对应 href
    -中间可以有空格或没有空格,比如href = 或href= 对应\\s*
    -href后接=号 对应=
    -=号后面有一个空格 对应\\s
    -选择解析符,表示这里的解析将是一个分组,对应(,从后面的表达式来看,这里表示里面有两种可选解析,对应(可选解析A
    -后面的链接以双引号开始 即\"
    -中间接任意多个,只要不是有双引号的任意字符,可以有多个,或者一个都没有,比如www.xxx.com之类的数据,只要没有双引号即可  对应 [^\"]* 其中^表示除什么之外
    -接下来,由双引号表示结束其中的链接信息 对应 \"
    可选解析A结束| 表示一个可选解析的结束
    可选解析B开始
    -表示任意只要不是空格和>符号的数据皆可,其时与解析A就是一个有双引号一个没双引号的问题,对应[^\\s>]*
    可选解析B结束)分组结束-后面接空格,也可以无空格 对应\\s*
    -最后整个解析以>结束,如<axx >这里的最后一个>结束符整个解析完毕!!!
      

  2.   

    话说这个一点都不通用好不好随便找个
    <li><a href="pref.html" target="view_frame">Preface</a></li>
    这个匹配试试