zoukankan      html  css  js  c++  java
  • 正则表达式

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

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

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

          

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

  • 相关阅读:
    WPF中StringToImage和BoolToImage简单用法
    linux定时执行任务
    进程管理
    防火墙和网络安全
    ICMP
    茶叶知识
    插花、花艺、种植
    AD域中添加了一个策略导致的问题
    写一个工具,将批量的“规章制度”文件上传到广西门户网站对应的文档库中
    SharePoint Online 创建门户网站系列之定制栏目
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6384722.html
Copyright © 2011-2022 走看看