java的正则表达式你知道多少

作者:xiaostudy 时间:2022-06-09 00:09:34 

字符
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]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](减去)
预定义字符类
.任何字符(与行结束符可能匹配也可能不匹配)
\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);
   }
}

来源:https://www.cnblogs.com/xiaostudy/p/9547187.html

标签:java,正则,表达式
0
投稿

猜你喜欢

  • Python学习笔记(一)(基础入门之环境搭建)

    2021-12-26 12:51:40
  • 利用Python学习RabbitMQ消息队列

    2021-01-08 21:06:09
  • 基于python图像处理API的使用示例

    2022-12-19 02:14:53
  • python进行相关性分析并绘制散点图详解

    2023-02-25 14:45:54
  • 利用python实现汉诺塔游戏

    2021-02-19 03:03:45
  • Python排序搜索基本算法之希尔排序实例分析

    2023-03-27 14:06:07
  • React实现表格选取

    2023-08-25 02:56:17
  • 用python处理图片之打开\\显示\\保存图像的方法

    2021-03-16 11:37:08
  • Django框架模型简单介绍与使用分析

    2021-04-06 02:59:19
  • SQL Server服务器内存升级后的烦恼

    2008-12-22 10:55:00
  • Python实现统计代码行的方法分析

    2023-10-15 13:08:44
  • asp如何正确显示数据库里同时存在的GB码和BIG5编码?

    2010-06-28 18:26:00
  • Golang语言学习拿捏Go反射示例教程

    2023-06-22 23:30:23
  • sqlserver 三种分页方式性能比较[图文]

    2011-09-30 11:16:20
  • python如何读取bin文件并下发串口

    2021-12-21 17:09:21
  • python-pyinstaller、打包后获取路径的实例

    2023-10-27 05:02:09
  • Flask教程之重定向与错误处理实例分析

    2021-02-04 08:00:49
  • python使用xlrd模块读取xlsx文件中的ip方法

    2022-12-26 13:42:00
  • 基于python进行桶排序与基数排序的总结

    2023-06-13 17:32:33
  • redis之django-redis的简单缓存使用

    2023-11-20 10:30:15
  • asp之家 网络编程 m.aspxhome.com