String reg = "(?<=http\\://[a-zA-Z0-9]{0,100}[.]{0,1})[^.\\s]*?\\.(com|cn|net|org|biz|info|cc|tv)";String regUrl = "(?<=(href=)[\"]?[\']?)[http://][^\\s\"\'\\?]*("
+ myDomain + ")[^\\s\"\'>]*";
对于以上两个正则表达式存在一些疑惑:
对于第一个正则表达式:
1、“[^.\\s]*?\\.”这一部分。.(点)不是表示除\n外的任意一个字符么,那\\s和\\.是什么意思。这个正则表达式是匹配URL当中的域名的,哪位大神可以具体分析一下不?
对于第二个正则表达式:
1、“[http://]”这一部分,[]不是匹配当中的一个字符吗,为什么这里当做匹配http://用也行得通了。
2、“[^\\s\"\'\\?]”这一部分,\\?又是什么意思。这个正则表达多是匹配网页中的链接的,也请分析一下。
先谢过了~~~

解决方案 »

  1.   

    .表示任意,\\s表示空格啊tab啊那些符号, \\.就是把‘.’转义了,表示只能是‘.’这个符号了;
    java中\\就是转义符,\\?就是匹配‘?’了,他就没有0个或者1个的意思了。
    []还有个意思也是转义 比如[.]=\\.
      

  2.   

    \就是转义的意思啊,把.给转义了,要不你想想如果匹配“.”该怎么弄?
    [http://]这句就是匹配一个味http://的字符串,并不是一个字符
    [^\\s\"\'\\?]
    \s匹配任何空白字符,包括空格、制表符、换页符等等
    然后加上一个"
    加上一个'
    加上一个\?匹配前面的子表达式零次或一次。
      

  3.   

    如果出现[aeiou]是理解成匹配aeiou这组字符串,还是理解成匹配无意字符呢?
      

  4.   

    <html>
    <head>
    <script type="text/javascript">
    var regex=/^[hello]+$/;
    alert(regex.test("olleh"));
    </script>
    </head>
    <body>
    </body>
    </html>
    你做一个这种例子看一下不就知道了么?
    某些东西自己实验验证的收获的肯定更多。
      

  5.   

    [aeiou]正则表达式中的[]里面的内容是指匹配其中的任意一个字符。你用aeiou就都能匹配。
    用abcde则就是匹配a e。[.] .不转义就是代表匹配任意字符所以[.]就是匹配任意一个字符