正则表达式的匹配

正则表达式匹配

http://www.nowcoder.com/questionTerminal/45327ae22b7b413ea21df13ee7d6429c

public boolean match(char[] str, char[] pattern)
{
    if (str == null || pattern == null)
        return false;
    return match(str, 0, pattern, 0);
}

private boolean match(char[] str, int strIndex, char[] pattern, int patternIndex) {
    if (str.length == strIndex && pattern.length == patternIndex)
        return true;
    if (str.length != strIndex && pattern.length == patternIndex)
        return false;
    if (patternIndex+1<pattern.length&&pattern[patternIndex+1]=='*'){
        if (str.length != strIndex && (str[strIndex] == pattern[patternIndex]||pattern[patternIndex]=='.')){
            return match(str,strIndex,pattern,patternIndex+2)||//匹配0个
                    match(str,strIndex+1,pattern,patternIndex+2)||//匹配1个
                    match(str,strIndex+1,pattern,patternIndex);//匹配下一个
        }
        else
            return match(str,strIndex,pattern,patternIndex+2);
    }
    if (str.length != strIndex && (str[strIndex] == pattern[patternIndex]||pattern[patternIndex]=='.')){
        return match(str,strIndex+1,pattern,patternIndex+1);
    }
    return false;
}
全部评论

相关推荐

02-14 15:34
门头沟学院 Java
Java抽象带篮子:专业技能怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务