正则表达式
正则表达式的作用
- 校检字符串是否满足规则
- 在一段文本中查找满足要求的内容
正则表达式的使用
- 在String类中提供了matches方法来判断字符串是否于给定的正则表达式相匹配
public boolean matches(String regex)
- 字符类(只匹配一个字符)
| 正则表达式 | 说明 |
|---|---|
| [abc] | 只能是a,b或c |
| [^abc] | 除了a,b,c之外的任何字符 |
| [a-zA-Z] | a到z,A到Z,包括(范围) |
| [a-d[m-p]] | a到d,或m到p |
| [a-z&&[def]] | a-z和def的交集,即d,e,f |
| [a-z&&[ ^bc]] | a-z和非bc的交集,等同于[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]一个非单词字符 |
- 数量词
| 正则表达式 | 说明 |
|---|---|
| X? | X,一次或0次 |
| X* | X,零次或多次 |
| X+ | X,一次或多次 |
| X{n} | X,正好n次 |
| X{n,} | X,至少n次 |
| X{n,m} | X,至少n次但不超过m次 |
- 小结
| 正则表达式 | 说明 | 举例 |
|---|---|---|
| [] | 里面的内容只出现一次 | [0-9] [a-zA-Z0-9] |
| () | 分组 | a(bc)+ |
| 取反 | [ ^abc] | |
| && | 交集,不能写单个的& | [a-z&&m-p] |
| | | 写在方括号外面表示并集 | [a-zA-Z0-9] x|X |
| . | 任意字符 | \n 回车符号不匹配 |
| \ | 转义字符 | \ \d |
| \ \d | 0-9 | \ \d+ |
| \ \D | 非0-9 | \ \D+ |
| \ \s | 空白字符 | [\t\n\x0B\f\r] |
| \ \S | 非空白字符 | [ ^\s] |
| \ \w | 单词字符 | [a-zA-Z_0-9] |
| \ \W | 非单词字符 | [ ^w] |
| ? | 0次或1次 | \ \d? |
| * | 0次或多次 | \ \d* (abc)* |
| + | 1次或多次 | \ \d+ (abc)+ |
| {} | 具体次数 | a{7} \ \d{7,19} |
| (?i) | 忽略ab的大小写 | (?i)abc |
| a((?i)b)c | 只忽略b的大小写 | a((?i)b)c |
** 转义字符\ **
-
改变后面那个字符原本的含义
-
例如:
\"- 此时\表示转义字符,改变了后面那个双引号原本的含义
- 把它变成了一个普普通通的双引号而已
-
例如:
\\- 前面的\是一个转义字符,改变了后面\原本的含义
- 把它变成一个普普通通的\而已
- 简单来记:两个\表示一个\