正则表达式的概念
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
简单理解,正则表达式就是一串特殊的字符串(该字符串规定了一定的规则),用于和某些字符串进行比较、匹配;可以对字符串进行查找、替换等操作。
常用正则表达式的特定的字符
- "[]"表示任意一个,如:[a-z]表示a-z字母中的其中一个字母
- "-"在[]中表示范围
- "+"表示一个或多个,如:[a-z]+表示a-z字母中的一个或者多个字母
- "*"表示0个或多个,如:[a-z]*表示a-z字母中的0个或者多个字母
- "?"表示0个或者1个,如:[a-z]?表示a-z字母中的0个或者1个字母
- "&&"表示与的关系
- "^"在[]里面表示除了,如:[ ^a-z]表示除了a-z的任意字符
预定义的字符集
正则表达式 |
说明 |
. |
任意一个字符 |
\d |
任意一个数字字符,相当于[0-9] |
\w |
单词字符,相当于[a-zA-Z0-9] |
\s |
空白字符,相当于[\t\n\x0B\f\r] |
\D |
非数字字符 |
\W |
非单词字符 |
\S |
非空白字符 |
数量词
正则表达式 |
说明 |
X? |
表示0个或者1个 |
X* |
表示0个或任意多个X |
X+ |
表示1个到任意多个X(大于等于1个X) |
X{n} |
表示n个X |
X{n,} |
表示n到任意多个X(大于等于n个X) |
X{n,m} |
表示n到m个X |
边界字符
符号 |
说明 |
^X{n,} |
至少由n个X开始 |
X{n,}$ |
至少由n个X结束 |
package com.tedu.cn;
import org.junit.Test;
public class RegexTest {
@Test
public void m1(){
String regex="[a-z]";
System.out.println("b".matches(regex));
System.out.println("---------改变匹配模式01------------")