C语言学习网

java正则表达式的知识点有哪些

发表于:2022-08-20 作者:安全数据网编辑
编辑最后更新 2022年08月20日,这篇文章主要介绍"java正则表达式的知识点有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"java正则表达式的知识点有哪些"文章能帮助大家解决问题。字符

这篇文章主要介绍"java正则表达式的知识点有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"java正则表达式的知识点有哪些"文章能帮助大家解决问题。

字符
x字符 x
\\反斜线字符
\0n带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh带有十六进制值 0x 的字符 hh
\uhhhh带有十六进制值 0x 的字符 hhhh
\t制表符 ('\u0009')
\n新行(换行)符 ('\u000A')
\r回车符 ('\u000D')
\f换页符 ('\u000C')
\a报警 (bell) 符 ('\u0007')
\e转义符 ('\u001B')
\cx对应于 x 的控制符
字符类
[abc]abc(简单类)
[^abc]任何字符,除了 abc(否定)
[a-zA-Z]azAZ,两头的字母包括在内(范围)
[a-d[m-p]]admp[a-dm-p](并集)
[a-z&&[def]]def(交集)
[a-z&&[^bc]]az,除了 bc[ad-z](减去)
[a-z&&[^m-p]]az,而非 mp[a-lq-z](减去)
预定义字符类
.任何字符(与行结束符可能匹配也可能不匹配)
\d数字:[0-9]
\D非数字: [^0-9]
\s空白字符:[ \t\n\x0B\f\r]
\S非空白字符:[^\s]
\w单词字符:[a-zA-Z_0-9]
\W非单词字符:[^\w]
Greedy 数量词
X?X,一次或一次也没有
X*X,零次或多次
X+X,一次或多次
X{n}X,恰好 n 次
X{n,}X,至少 n 次
X{n,m}X,至少 n 次,但是不超过 m 次
Reluctant 数量词
X??X,一次或一次也没有
X*?X,零次或多次
X+?X,一次或多次
X{n}?X,恰好 n 次
X{n,}?X,至少 n 次
X{n,m}?X,至少 n 次,但是不超过 m 次

例子

package com.xiaostudy;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MyPattern {    public static void main(String[] args) {    }    private static void demo_Reluctant() {        // 检验规则,单个字母,"+"表示:0次或多次,后面多加一个"?"与不加的区别是:不加的话表示只匹配一次,加的话表示匹配多次        String regex = ".+?222";        // 要检验的对象        String str = "xx222xx222xx222xx222";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        while (matcher.find())            System.out.println(matcher.start() + "=====" + matcher.end());        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_aBAb() {        // 检验规则,字母集,"+"表示:0个或多个        String regex = "[abcd]+";        // 要检验的对象        String str = "adbcdbaDACDBDAC";        // 编译正则表达式,不区分大小写        Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_abcd() {        // 检验规则,字母集,"+"表示:0个或多个        String regex = "[abcd]+";        // 要检验的对象        String str = "adbcdabdcddbadbc";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_123no() {        // 检验规则,非数字集,"+"表示:0个或多个        String regex = "[^1-9]+";// 等价于\\D+        // 要检验的对象        String str = "+sdoi#$@%@#";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_123() {        // 检验规则,数字集,"+"表示:0个或多个        String regex = "[1-9]+";// 等价于\\d+        // 要检验的对象        String str = "123";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_2() {        // 检验规则,单个数字        String regex = "[1-9]";        // 要检验的对象        String str = "2";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_nm() {        // 检验规则,单个字母,"{n,m}"表示:出现n次到m次之间,包括他们本身        String regex = "x{3,5}";        // 要检验的对象        String str = "xxxxx";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_n0() {        // 检验规则,单个字母,"{n,}"表示:出现n次或以上        String regex = "x{3,}";        // 要检验的对象        String str = "xxxx";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_n() {        // 检验规则,单个字母,"{n}"表示:就出现n次        String regex = "x{3}";        // 要检验的对象        String str = "xxx";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_xxx0() {        // 检验规则,单个字母,"+"表示:0次或多次        String regex = "x+";        // 要检验的对象        String str = "xxx";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_xxx() {        // 检验规则,单个字母,"*"表示:一次或多次        String regex = "x*";        // 要检验的对象        String str = "xxx";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_x_01() {        // 检验规则,单个字母,"?"表示:一次或一次都没有        String regex = "x?";        // 要检验的对象        String str = "x";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_00() {        // 检验规则,单个字母,"."表示:任何字符        String regex = ".";        // 要检验的对象        String str = "x";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }    private static void demo_x() {        // 检验规则,单个字母        String regex = "x";// 等价于\\w、[a-z]        // 要检验的对象        String str = "x";        // 编译正则表达式        Pattern pattern = Pattern.compile(regex);        // 创建匹配器,给定输入与此模式的匹配        Matcher matcher = pattern.matcher(str);        // 匹配,返回结果        boolean b = matcher.matches();        if (b)            System.out.println(true);        else            System.out.println(false);    }}

关于"java正则表达式的知识点有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0