首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

挑战Pattern,该如何解决

2012-02-09 
挑战Patternstart:PatternpPattern.compile( (\\[(URL)(((((http://)|(ftp://))?)([^\\[]*))?)\\])((((

挑战Pattern
start:
Pattern   p   =   Pattern.compile
( "(\\[(URL)((=(((http://)|(ftp://))?)([^\\[]*))?)\\])((((http://)|(ftp://))?)([^\\[]*))(\\[(\\/URL)\\]) ",Pattern.CASE_INSENSITIVE);
               
                Matcher   m   =   p.matcher(s);
                StringBuffer   sb   =   new   StringBuffer();
                boolean   result   =   m.find();
                while(result)   {
          m.appendReplacement(sb, " <a   href=\ " ");
                        if(! " ".equals(m.group(3))){
              if( " ".equals(m.group(5)))
    if(m.group(10)==null)
sb.append( "http:// "+m.group(9)+ "\ "> "+m.group(9)+ " </a> ");
                      else
sb.append( "http:// "+m.group(9)+ "\ "> "+m.group(10)+ " </a> ");
              else
    if(m.group(10)==null)
sb.append(m.group(5)+m.group(9)+ "\ "> "+m.group(5)+m.group(9)+ " </a> ");
    else
sb.append(m.group(5)+m.group(9)+ "\ "> "+m.group(10)+ " </a> ");
}
  else{
            if( " ".equals(m.group(11)))
sb.append( "http:// "+m.group(10)+ "\ "> "+m.group(10)+ " </a> ");
            else
sb.append(m.group(10)+ "\ "> "+m.group(10)+ " </a> ");
}
                  result   =   m.find();
        }
                m.appendTail(sb);
end
那位高手能给解释一下

[解决办法]
应该是比较复杂的URL地址提取.
建议去看一下正则表达式(其实, 也可以直接看
java.util.regex.Matcher
java.util.regex.Pattern

热点排行
Bad Request.