加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式,oracle部分匹配转java的全部匹配

发布时间:2020-12-14 01:14:10 所属栏目:百科 来源:网络整理
导读:/* Oracle: [ :alnum: ] All alphanumeric characters [ :alpha: ] All alphabetic characters [ :blank: ] All blank space characters. [ :cntrl: ] All control characters (nonprinting) [ :digit: ] All numeric digits [ :graph: ] All [ :punct: ] ,
/*
    Oracle:    
[:alnum:]   All alphanumeric characters
[:alpha:]   All alphabetic characters
[:blank:]   All blank space characters.
[:cntrl:]   All control characters (nonprinting)
[:digit:]   All numeric digits
[:graph:]   All [:punct:],[:upper:],[:lower:],and [:digit:] characters.
[:lower:]   All lowercase alphabetic characters
[:print:]   All printable characters
[:punct:]   All punctuation characters
[:space:]   All space characters (nonprinting)
[:upper:]   All uppercase alphabetic characters
[:xdigit:]

Java
p{Lower}   A lower-case alphabetic character: [a-z]
p{Upper}   An upper-case alphabetic character:[A-Z]
p{ASCII}   All ASCII:[x00-x7F]
p{Alpha}   An alphabetic character:[p{Lower}p{Upper}]
p{Digit}   A decimal digit: [0-9]
p{Alnum}   An alphanumeric character:[p{Alpha}p{Digit}]
p{Punct}   Punctuation: One of !"#$%&'()*+,-./:;<=>?@[]^_`{|}~ p{Graph} A visible character: [p{Alnum}p{Punct}] p{Print} A printable character: [p{Graph}x20] p{Blank} A space or a tab: [ t] p{Cntrl} A control character: [x00-x1Fx7F] p{XDigit} A hexadecimal digit: [0-9a-fA-F] p{Space} */ 
private static String[][] oracle2javaPatterns = 
            new String[][] {
                {"[[:alnum:]]","[:alnum:]","p{Alnum}"},{"[^[:alpha:]]","[^:alpha:]","[^a-zA-Zu4E00-u9FFF]"},{"[[:alpha:]]","[:alpha:]","[a-zA-Zu4E00-u9FFF]"},{"[[:blank:]]","[:blank:]","p{Blank}"},{"[[:cntrl:]]","[:cntrl:]","p{Cntrl}"},{"[[:digit:]]","[:digit:]","p{Digit}"},{"[[:graph:]]","[:graph:]","p{Graph}"},{"[[:lower:]]","[:lower:]","p{Lower}"},{"[[:print:]]","[:print:]","p{Print}"},{"[[:punct:]]","[:punct:]","p{Punct}"},{"[[:space:]]","[:space:]","p{Space}"},{"[[:upper:]]","[:upper:]","p{Upper}"},{"[[:xdigit:]]","[:xdigit:]","p{Xdigit}"}           
            };

    public static String oraclePattern2javaPattern(String patternValue) {
        for (int i = 0; i < oracle2javaPatterns.length; i++) {
            String[] patterns = oracle2javaPatterns[i];
            String opattern0 = patterns[0];
            String opattern1 = patterns[1];
            String jpattern = patterns[2];
            if (patternValue.contains(opattern0)) {
                patternValue = patternValue.replace(opattern0,jpattern);
            }
            if (patternValue.contains(opattern1)) {
                patternValue = patternValue.replace(opattern1,jpattern);
            }
        }
        return patternValue;
    } 

    private void oraclePattern2javaPattern() {
        if (!patternValue.startsWith("^")) {
            patternValue = ".*" + patternValue;
        }
        if (!patternValue.endsWith("$")) {
            patternValue = patternValue + ".*";
        }
        this.patternValue = oraclePattern2javaPattern(patternValue);        
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读