Java正则Pattern类简单上手
正则表达式的作用
- 验证数据的有效性
- 替换文本内容
- 从字符串中提取子字符串
正则表达式应用场景
- 邮箱验证
- 手机号码验证
- 用户名、密码是否合法
- …
Pattern类的使用方法
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
因此,典型的调用顺序是:
//下面是通过正则判断字符串是否是数字的实例
//1.通过正则表达式创建正则编译对象
Pattern compile = Pattern.compile("[-]??\\d+\\.??\\d*?");
//2.编译对象匹配需要验证的字符串
Matcher matcher = compile.matcher("-3.33");
//3.判断字符串是否匹配正则
boolean flag = matcher.matches();
//4.返回或者输入true or false
System.out.println(flag);//true
正则表达式的构造
字符
构造 | 匹配 |
| 字符 |
| 反斜线字符 |
| 带有八进制值 0 的字符 |
| 带有八进制值 0 的字符 |
| 带有八进制值 0 的字符 mnn(0 <= |
| 带有十六进制值 |
| 带有十六进制值 |
| 制表符 ( |
| 新行(换行)符 ( |
| 回车符 ( |
| 换页符 ( |
| 报警 (bell) 符 ( |
| 转义符 ( |
| 对应于 |
字符类
构造 | 匹配 |
|
|
| 任何字符,除了 |
|
|
|
|
|
|
|
|
|
|
预定义字符
构造 | 匹配 |
| 任何字符(与行结束符可能匹配也可能不匹配) |
| 数字: |
| 非数字: |
| 空白字符: |
| 非空白字符: |
| 单词字符: |
| 非单词字符: |
POSIX 字符类(仅 US-ASCII)
构造 | 匹配 |
| 小写字母字符: |
| 大写字母字符: |
| 所有 ASCII: |
| 字母字符: |
| 十进制数字: |
| 字母数字字符: |
| 标点符号: |
| 可见字符: |
| 可打印字符: |
| 空格或制表符: |
| 控制字符: |
| 十六进制数字: |
| 空白字符: |
java.lang.Character 类(简单的 java 字符类型)
构造 | 匹配 |
| 等效于 java.lang.Character.isLowerCase() |
| 等效于 java.lang.Character.isUpperCase() |
| 等效于 java.lang.Character.isWhitespace() |
| 等效于 java.lang.Character.isMirrored() |
Unicode 块和类别的类
构造 | 匹配 |
| Greek 块(简单块)中的字符 |
| 大写字母(简单类别) |
| 货币符号 |
| 所有字符,Greek 块中的除外(否定) |
| 所有字母,大写字母除外(减去) |
边界匹配器
构造 | 匹配 |
| 行的开头 |
| 行的结尾 |
| 单词边界 |
| 非单词边界 |
| 输入的开头 |
| 上一个匹配的结尾 |
| 输入的结尾,仅用于最后的结束符(如果有的话) |
| 输入的结尾 |
Greedy 数量词
构造 | 匹配 |
| X,一次或一次也没有 |
| X,零次或多次 |
| X,一次或多次 |
| X,恰好 n 次 |
| X,至少 n 次 |
| X,至少 n 次,但是不超过 m 次 |
Reluctant 数量词
构造 | 匹配 |
| X,一次或一次也没有 |
| X,零次或多次 |
| X,一次或多次 |
| X,恰好 n 次 |
| X,至少 n 次 |
| X,至少 n 次,但是不超过 m 次 |
Logical 运算符
构造 | 匹配 |
| X 后跟 Y |
| X 或 Y |
| X,作为捕获组 |
Back 引用
构造 | 匹配 |
| 任何匹配的 nth 捕获组 |
引用
构造 | 匹配 |
| Nothing,但是引用以下字符 |
| Nothing,但是引用所有字符,直到 |
| Nothing,但是结束从 |
特殊构造(非捕获)
构造 | 匹配 |
| X,作为非捕获组 |
| Nothing,但是将匹配标志i d m s u x on - off |
| X,作为带有给定标志 i d m s u x on - off |
| X,通过零宽度的正 lookahead |
| X,通过零宽度的负 lookahead |
| X,通过零宽度的正 lookbehind |
| X,通过零宽度的负 lookbehind |
| X,作为独立的非捕获组 |
字段摘要
字段摘要 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
方法摘要
方法摘要 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|