1、Pattern p = Pattern.compile("(?<=http://)[^/]*(?=/)");
2、str.replaceAll("/[^/]+$","")
帮我解释解释这两个正则是什么意思啊.别贴一堆文章啊。还有别骂我啊。tks.

解决方案 »

  1.   

    呵呵,因为第一个是我昨天写的,我解释下第一个吧,第二个就不管了。(?<=http://)[^/]*(?=/)前面是"http://” ,后面是"/",中间是除了"/"之外的任意字符出现0次或多次。  
    目的就是找出这个中间包含的字符串
      

  2.   

    我知道是你写的。所以我才问的。呵呵。 ?<=是开头等于  (?=/) 这个怎么样没有<号啊?呵呵。不懂了。
      

  3.   

    ?<=  不是开头,是要匹配的字符串的前面。  ?=,因为没有"<" 所以就是后面了。这样理解吧。顺便说下第二个
    str.replaceAll("/[^/]+$","")
    它是把一个字符串转换成空。这个字符串的规则是第一个字符是“/”,后面跟着不是“/”的任意字符(可能是一个或多个)并且出现在str的末尾。