• 正则表达式


    正则表达式:其实一种规则,有自己特殊的应用,其作用就是针对于字符串进行操作。

    正则:就是用于操作字符串的规则,其中这些规则使用了一些字符表示。

    public class Demo2{
        
        public static void main(String[] args) {
            //只能输入数字
            String str = "12435423a2";
            boolean flag = str.matches("[0-9]+"); 
            System.out.println(flag?"输入正确":"只能输入数字");
            
        }
    }

    正则表达式的符号

    预定义字符类

    .

    任何字符(与行结束符可能匹配也可能不匹配)

    d

    数字:[0-9]

    D

    非数字: [^0-9]

    s

    空白字符:[ x0Bf ]

    S

    非空白字符:[^s]

    w

    单词字符:[a-zA-Z_0-9]

    W

    非单词字符:[^w]

    System.out.println("a".matches("."));

           System.out.println("1".matches("\d"));

           System.out.println("%".matches("\D"));

           System.out.println(" ".matches("\s"));

           System.out.println("^".matches("\S"));

           System.out.println("a".matches("\w"));

     说明:任何预定义字符没有加上数量词之前都只能匹配一个字符而已。

    Greedy 数量词

    X?

    X,一次或一次也没有

    X*

    X,零次或多次

    X+

    X,一次或多次

    X{n}

    X,恰好n次

    X{n,}

    X,至少n次

    X{n,m}

    X,至少n次,但是不超过m次

    System.out.println( "a".matches(".") );

    System.out.println( "a".matches("a") );

    System.out.println("a".matches("a?") );

    System.out.println( "aaa".matches("a*") );

    System.out.println( "".matches("a+") );

    System.out.println( "aaaaa".matches("a{5}") );

    System.out.println( "aaaaaaaaa".matches("a{5,8}") );

    System.out.println( "aaa".matches("a{5,}") );

    System.out.println( "aaaaab".matches("a{5,}") );

    范围表示

    [abc]

    a、b 或 c(简单类)

    [^abc]

    任何字符,除了 a、b 或 c(否定)

    [a-zA-Z]

    a 到 z 或 A 到 Z,两头的字母包括在内(范围)

    [a-d[m-p]]

    a 到 d 或 m 到 p:[a-dm-p](并集)

    [a-z&&[def]]

    d、e 或 f(交集)

    [a-z&&[^bc]]

    a 到 z,除了 b 和 c:[ad-z](减去)

    [a-z&&[^m-p]]

    a 到 z,而非 m 到 p:[a-lq-z](减去)

            System.out.println( "a".matches("[a]") );

           System.out.println( "aa".matches("[a]+") );

           System.out.println( "abc".matches("[abc]{3,}") );

           System.out.println( "abc".matches("[abc]+") );

           System.out.println( "dshfshfu1".matches("[^abc]+") );

           System.out.println( "abcdsaA".matches("[a-z]{5,}") );

           System.out.println( "abcdsaA12".matches("[a-zA-Z]{5,}") );

           System.out.println( "abcdsaA12".matches("[a-zA-Z0-9]{5,}") );

           System.out.println( "abdxyz".matches("[a-c[x-z]]+"));

           System.out.println( "bcbcbc".matches("[a-z&&[b-c]]{5,}"));

           System.out.println( "tretrt".matches("[a-z&&[^b-c]]{5,}"));

          

    备注:范围词里面不管有多长,没有数量词的配合都只能匹配一个字符而已

  • 相关阅读:
    EM算法
    Statistics in Python
    26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL
    5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics
    统计学习那些事
    Image Scaling using Deep Convolutional Neural Networks
    Unsupervised learning, attention, and other mysteries
    使用导入导出进行备份和恢复OCR(10g)
    计算比尔盖茨財富的方法
    jQuery訪问属性,绝对定位
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6384722.html
Copyright © 2020-2023  润新知