• java成神之——正则表达式基本使用


    正则表达式

    常用匹配规则

    [abc]       abc其中一个
    
    [^abc]      abc之外的一个
    
    [a-z]       a和z之间的一个
            
    .           表示任意字符
    
    d          表示一个数字
    
    D          非数字
    
    w          表示a-zA-Z0-9_
    
    W          非a-zA-Z0-9_
    
    ^           开头
    
    $           结尾
    
              英文单词边界
    
    ?           一次或者0次
    
    *           零次或者多次
    
    +           一次或者多次
    
    {n}         出现制定n次 
    
    {n,}        至少n次
    
    {n,m}       >=n <=m 次
    

    基本使用

    正则结构
        (d{3})-(d{3})-(d{4})
        ^-----^ ^-----^ ^-----^
        组 1      组 2     组 3
    
    Pattern phonePattern = Pattern.compile("(\d{3})-(\d{3})-(\d{4})");
    Matcher phoneMatcher = phonePattern.matcher("abcd800-555-1234wxyz");
    phoneMatcher.find();        // 查找一次 true
    phoneMatcher.group(0);      // 800-555-1234
    phoneMatcher.group(1);      // 800
    

    标记符的使用

    常用标记符
        DOTALL              表示.可以代表任意字符包括行终止符,简写?s
        CASE_INSENSITIVE    表示不区分大小写,简写?i
    
    Pattern pattern = Pattern.compile("foo.", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    或者
    Pattern pattern = Pattern.compile("(?si)foo.");
    
    pattern.matcher("FOO
    ").matches();  // true
    

    部分正则标记

    Pattern pattern = Pattern.compile("^\[(a)$");
    匹配字符串中有部分特殊的需要转义的字符,除了添加双反斜线以外,还可以如下操作
    
    Pattern pattern = Pattern.compile("^\Q[\E(a)$");
    Q 表示起始,E 表示结束
    或者
    Pattern pattern = Pattern.compile(Pattern.quote("[") + "(a)$");
    

    正则表达式在字符串方法中的使用

    matches方法:判断字符串是否满足正则匹配
        String str = "abc";
    	boolean b = str.matches("[a].*"); 
    
    split方法:根据正则匹配的规则分隔字符串
        String str = "abc";
    	String[] arr = str.split("[b]");                // [a, c]
            
    replaceAll方法:将匹配的字符串替换成其他字符
        String str = "abc";
    	String str1 = str.replaceAll("[\w]", "1");     // 111
    

    结语

    本文章是java成神的系列文章之一
    
    如果你想知道,但是本文没有的,请下方留言
    
    我会第一时间总结出来并发布填充到本文
    
  • 相关阅读:
    《C》指针
    《C》变量
    《C》数组
    《C》VS控制台应用
    listagg wm_concat 行转列
    Linux学习之shell script
    Linux学习之正则表达式sed
    Linux学习之正则表达式grep
    Linux学习之SAMBA共享(密码验证)
    Linux学习之SAMBA共享(无密码)
  • 原文地址:https://www.cnblogs.com/ye-hcj/p/9750050.html
Copyright © 2020-2023  润新知