一、概念
正则表达式,又称规则表达式(Regular Expression)。通常被用来检索、替换符合某个模式(规则)的文本。
二、正则表达式的规则
正则表达式在java中主要涉及到两类,Pattern和Matcher。
java.util.regex.Pattern类的实例,主要是作用是给正则表达式一个匹配模式。在java里正则表达式是一个字符串,字符串的能力是非常有限的,因此在java里需要Pattern实例来包装这个正则表达式。
java.util.regex.Matcher类的实例,作用是增加表达式匹配字符串的权力,调用Matcher实例的方法,正则表达式可以匹配整个字符串。
Pattern的构造函数是私有的,不能通过new来直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表达式编译并赋予给Pattern类。
String regex = "abcd";
Pattern p = Pattern.compile(regex);
字符的取值范围 | 描述 |
---|---|
[abc] | 表示abc中任意一个 |
[^abc] | 表示不是abc中任意一个 |
[a-zA-Z] | 表示大小写的英文字母 |
[0-9] | 表示是数字 |
数量表达式 | 描述 |
---|---|
? | 表示出现0或1次 |
+ | 表示出现1或多次 |
* | 表示出现0、1或多次 |
{n} | 表示出现n次 |
{n,m} | 表示出现n-m次 |
{n,} | 表示出现n次以上 |
简洁的字符表示 | 描述 |
---|---|
. | 表示任意的字符 |
d | 表示数字 |
D | 表示非数字 |
s | 表示由空字符组成 |
S | 表示由非空字符组成 |
w | 表示字母、数字、下划线 |
W | 表示不是由字母数组下划线组成 |
逻辑表达式 | 描述 |
---|---|
XY | 表示X后面跟着Y |
X|Y | 表示X或Y |
(X) | 将X看作一个整体 |
三、正则验证
验证一
- 定义正则表达式:Pattern p = Pattern.compile(String regex);
- 表达式的模式:Matcher m = p.matcher("需要匹配的数据");
- 验证:m.matches();
验证二
验证:boolean matches(String regex);
拆分:String[] split (String regex);
替换:String replaceAll(String regex, String replacement)