http://topic.csdn.net/u/20110616/15/b966767e-1244-4818-9b57-405039e1d550.html 上次的连接现在知道了用startWith代替match能够提升性能。。但是对正则表达式却有点儿不给力代码如下。。不知有木有高手能花点点时间看看
下面的这个样子怎么把它换成startWith()..
献上100分//is dateString view like yyyy-MM-ddTHH:mm:ss.*
if (match(dateString, "\\d{4}-\\d{1,2}-\\d{1,2}(\\s\\d{1,2}:\\d{1,2}:\\d{1,2}?)?([\\s+-Zz])?.*")){...}    /**
     * match方法
     * Method perform string test against given regex pattern.
     *
     * @param sourceString  string where to search
     * @param patternString pattern
     * @return true if match
     */
    public boolean match(final String sourceString, final String patternString) {
        final String pattern;        if (!(((patternString.charAt(0) == 'm') && patternString.charAt(1) == '/')
                || (patternString.charAt(0) == '/'))) {
            pattern = '/' + patternString + '/';
        } else {
            pattern = patternString;
        }
        //下面的m_tuil是oro-2.0.8.jar包中的Perl5Util  
        return m_util.match(pattern, sourceString);
     }

解决方案 »

  1.   

    startWidth和match的场合不同比如说“abc................后面有10000个或更多字符”我只想知道是不是以abc开头这时候用startwidth就比match要好,String还有endwith方法
    从字面意思上就能很好的区别它们楼主这个例子改成startwith不是很合适。
      

  2.   


    想晓得后面m_util.match(pattern, sourceString)中,那个正则表达式所表示的字符串是咋个转换的我不可能直接上"\\d{4}-\\d{1,2}-\\d{1,2}(\\s\\d{1,2}:\\d{1,2}:\\d{1,2}?)?([\\s+-Zz])?.*".startsWith(dateString)吧?
      

  3.   

    这个要用match了,你的匹配还是可出现或不出现的
    另,看了一下文档,startsWith好像不支持通配符,是匹配前缀,上次说法可能有误导,纠正一下。
      

  4.   

    这个貌似不能换成startsWith吧,startsWith完全不支持正则。