zoukankan      html  css  js  c++  java
  • java正则表达式 1 -- 符号

    正则表达式主要是用于操作字符串的规则

    1 首先体验一下正则表达式:

    需求:某个串只能是数字

    传统方法:

     1 public class Demo2{
     2     
     3     public static void main(String[] args) {
     4         //只能输入数字
     5         String str = "124354232";
     6         char[] arr = str.toCharArray();
     7         boolean flag = true;
     8         for(int i = 0 ;  i< arr.length ; i++){
     9             if(!(arr[i]>=48&&arr[i]<=57)){
    10                 flag = false;
    11             }
    12         }
    13         System.out.println(flag?"输入正确":"输出只能是数字");
    14     }
    15 }

    用正则表达式:

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

    2 正则表达式的符号

    预定义字符类

    .

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

     

    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]

    ab c(简单类)

    [^abc]

    任何字符,除了 ab c(否定)

    [a-zA-Z]

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

    [a-d[m-p]]

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

    [a-z&&[def]]

    de 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,}"));

  • 相关阅读:
    Spring Freamwork 开发初体验
    mybooklist.cn 书单de故事六月十六日
    mybooklist 日志5.12
    我的书单mybooklist
    Bison
    Java学习日记——基础篇(一)常识
    Python学习日记(十)—— 杂货铺(全局变量补充、Python参数传递、字符串格式化、迭代器、生成器)
    Python学习日记(九)—— 模块二(logging、json&pickle、xml、requests、configparser、shutil、subprocess)
    Python学习日记(八)—— 模块一(sys、os、hashlib、random、time、RE)
    Python学习日记(七)——装饰器
  • 原文地址:https://www.cnblogs.com/K-artorias/p/7354816.html
Copyright © 2011-2022 走看看