博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java正则表达式
阅读量:4580 次
发布时间:2019-06-09

本文共 8620 字,大约阅读时间需要 28 分钟。

字符
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 次

 

 

 

例子

1 package com.xiaostudy;  2   3 import java.util.regex.Matcher;  4 import java.util.regex.Pattern;  5   6 public class MyPattern {  7   8     public static void main(String[] args) {  9     } 10  11     private static void demo_Reluctant() { 12         // 检验规则,单个字母,“+”表示:0次或多次,后面多加一个“?”与不加的区别是:不加的话表示只匹配一次,加的话表示匹配多次 13         String regex = ".+?222"; 14         // 要检验的对象 15         String str = "xx222xx222xx222xx222"; 16         // 编译正则表达式 17         Pattern pattern = Pattern.compile(regex); 18         // 创建匹配器,给定输入与此模式的匹配 19         Matcher matcher = pattern.matcher(str); 20         while (matcher.find()) 21             System.out.println(matcher.start() + "=====" + matcher.end()); 22         // 匹配,返回结果 23         boolean b = matcher.matches(); 24         if (b) 25             System.out.println(true); 26         else 27             System.out.println(false); 28     } 29  30     private static void demo_aBAb() { 31         // 检验规则,字母集,“+”表示:0个或多个 32         String regex = "[abcd]+"; 33         // 要检验的对象 34         String str = "adbcdbaDACDBDAC"; 35         // 编译正则表达式,不区分大小写 36         Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); 37         // 创建匹配器,给定输入与此模式的匹配 38         Matcher matcher = pattern.matcher(str); 39         // 匹配,返回结果 40         boolean b = matcher.matches(); 41         if (b) 42             System.out.println(true); 43         else 44             System.out.println(false); 45     } 46  47     private static void demo_abcd() { 48         // 检验规则,字母集,“+”表示:0个或多个 49         String regex = "[abcd]+"; 50         // 要检验的对象 51         String str = "adbcdabdcddbadbc"; 52         // 编译正则表达式 53         Pattern pattern = Pattern.compile(regex); 54         // 创建匹配器,给定输入与此模式的匹配 55         Matcher matcher = pattern.matcher(str); 56         // 匹配,返回结果 57         boolean b = matcher.matches(); 58         if (b) 59             System.out.println(true); 60         else 61             System.out.println(false); 62     } 63  64     private static void demo_123no() { 65         // 检验规则,非数字集,“+”表示:0个或多个 66         String regex = "[^1-9]+";// 等价于\\D+ 67         // 要检验的对象 68         String str = "+sdoi#$@%@#"; 69         // 编译正则表达式 70         Pattern pattern = Pattern.compile(regex); 71         // 创建匹配器,给定输入与此模式的匹配 72         Matcher matcher = pattern.matcher(str); 73         // 匹配,返回结果 74         boolean b = matcher.matches(); 75         if (b) 76             System.out.println(true); 77         else 78             System.out.println(false); 79     } 80  81     private static void demo_123() { 82         // 检验规则,数字集,“+”表示:0个或多个 83         String regex = "[1-9]+";// 等价于\\d+ 84         // 要检验的对象 85         String str = "123"; 86         // 编译正则表达式 87         Pattern pattern = Pattern.compile(regex); 88         // 创建匹配器,给定输入与此模式的匹配 89         Matcher matcher = pattern.matcher(str); 90         // 匹配,返回结果 91         boolean b = matcher.matches(); 92         if (b) 93             System.out.println(true); 94         else 95             System.out.println(false); 96     } 97  98     private static void demo_2() { 99         // 检验规则,单个数字100         String regex = "[1-9]";101         // 要检验的对象102         String str = "2";103         // 编译正则表达式104         Pattern pattern = Pattern.compile(regex);105         // 创建匹配器,给定输入与此模式的匹配106         Matcher matcher = pattern.matcher(str);107         // 匹配,返回结果108         boolean b = matcher.matches();109         if (b)110             System.out.println(true);111         else112             System.out.println(false);113     }114 115     private static void demo_nm() {116         // 检验规则,单个字母,“{n,m}”表示:出现n次到m次之间,包括他们本身117         String regex = "x{3,5}";118         // 要检验的对象119         String str = "xxxxx";120         // 编译正则表达式121         Pattern pattern = Pattern.compile(regex);122         // 创建匹配器,给定输入与此模式的匹配123         Matcher matcher = pattern.matcher(str);124         // 匹配,返回结果125         boolean b = matcher.matches();126         if (b)127             System.out.println(true);128         else129             System.out.println(false);130     }131 132     private static void demo_n0() {133         // 检验规则,单个字母,“{n,}”表示:出现n次或以上134         String regex = "x{3,}";135         // 要检验的对象136         String str = "xxxx";137         // 编译正则表达式138         Pattern pattern = Pattern.compile(regex);139         // 创建匹配器,给定输入与此模式的匹配140         Matcher matcher = pattern.matcher(str);141         // 匹配,返回结果142         boolean b = matcher.matches();143         if (b)144             System.out.println(true);145         else146             System.out.println(false);147     }148 149     private static void demo_n() {150         // 检验规则,单个字母,“{n}”表示:就出现n次151         String regex = "x{3}";152         // 要检验的对象153         String str = "xxx";154         // 编译正则表达式155         Pattern pattern = Pattern.compile(regex);156         // 创建匹配器,给定输入与此模式的匹配157         Matcher matcher = pattern.matcher(str);158         // 匹配,返回结果159         boolean b = matcher.matches();160         if (b)161             System.out.println(true);162         else163             System.out.println(false);164     }165 166     private static void demo_xxx0() {167         // 检验规则,单个字母,“+”表示:0次或多次168         String regex = "x+";169         // 要检验的对象170         String str = "xxx";171         // 编译正则表达式172         Pattern pattern = Pattern.compile(regex);173         // 创建匹配器,给定输入与此模式的匹配174         Matcher matcher = pattern.matcher(str);175         // 匹配,返回结果176         boolean b = matcher.matches();177         if (b)178             System.out.println(true);179         else180             System.out.println(false);181     }182 183     private static void demo_xxx() {184         // 检验规则,单个字母,“*”表示:一次或多次185         String regex = "x*";186         // 要检验的对象187         String str = "xxx";188         // 编译正则表达式189         Pattern pattern = Pattern.compile(regex);190         // 创建匹配器,给定输入与此模式的匹配191         Matcher matcher = pattern.matcher(str);192         // 匹配,返回结果193         boolean b = matcher.matches();194         if (b)195             System.out.println(true);196         else197             System.out.println(false);198     }199 200     private static void demo_x_01() {201         // 检验规则,单个字母,“?”表示:一次或一次都没有202         String regex = "x?";203         // 要检验的对象204         String str = "x";205         // 编译正则表达式206         Pattern pattern = Pattern.compile(regex);207         // 创建匹配器,给定输入与此模式的匹配208         Matcher matcher = pattern.matcher(str);209         // 匹配,返回结果210         boolean b = matcher.matches();211         if (b)212             System.out.println(true);213         else214             System.out.println(false);215     }216 217     private static void demo_00() {218         // 检验规则,单个字母,“.”表示:任何字符219         String regex = ".";220         // 要检验的对象221         String str = "x";222         // 编译正则表达式223         Pattern pattern = Pattern.compile(regex);224         // 创建匹配器,给定输入与此模式的匹配225         Matcher matcher = pattern.matcher(str);226         // 匹配,返回结果227         boolean b = matcher.matches();228         if (b)229             System.out.println(true);230         else231             System.out.println(false);232     }233 234     private static void demo_x() {235         // 检验规则,单个字母236         String regex = "x";// 等价于\\w、[a-z]237         // 要检验的对象238         String str = "x";239         // 编译正则表达式240         Pattern pattern = Pattern.compile(regex);241         // 创建匹配器,给定输入与此模式的匹配242         Matcher matcher = pattern.matcher(str);243         // 匹配,返回结果244         boolean b = matcher.matches();245         if (b)246             System.out.println(true);247         else248             System.out.println(false);249     }250 251 }

 

转载于:https://www.cnblogs.com/xiaostudy/p/9547187.html

你可能感兴趣的文章
python之路 Day8 paramiko学习
查看>>
博客园精华集
查看>>
poj1830:开关问题
查看>>
iis6.0 建立站点
查看>>
python-基础-基础知识-变量-选择-循环
查看>>
HTML元素控件事件表
查看>>
通过Ajax方式上传文件(input file),使用FormData进行Ajax请求
查看>>
古诗词 中文 分词 自动化
查看>>
Frameworks.Entity.Core 7
查看>>
IE6/IE7下:inline-block解决方案
查看>>
匿名函数递归
查看>>
客户端存储
查看>>
QLabel播放gif
查看>>
appium+python自动化39-adb shell输入中文(ADBKeyBoard)
查看>>
HBase批量插入的简单代码
查看>>
为什么要去创业?
查看>>
JBoss 系列十七:使用JGroups构建块MessageDispatcher 构建群组通信应用
查看>>
ajax交互Struts2的action(1)
查看>>
数据结构与算法 多种排序算法
查看>>
Vijos P1794 文化之旅
查看>>