正则表达式在用于校验信息是否满足某些规则的时候,非常的好用
在文本中查找满足要求的内容
| 符号 | 作用 | 补充 |
|---|---|---|
[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的交集 | &&为交集符号,匹配的字符是交集范围内容 |
[a-z&&[^bc]] | a-z和非bc的交集 | 和上一个基本一致 |
[a-z&&[ ^m-p]] | a-z和除了m到p的交集 | 存在运算优先级 |
单个字符.matches(正则表达式) 返回值是布尔类型| 符号 | 作用 | 补充 |
|---|---|---|
. | 匹配 任何字符 | |
\d | 匹配 一个数字 | |
\D | 匹配 非数字 | |
\s | 匹配 空白字符 ([\t\n\x0B\f\r]) | |
\w | 匹配 [a-zA-Z_0-9] 英文,数字,下划线 | |
\W | 匹配 [ ^\w] 一个非 英文,数字,下划线 字符 |
java中的\表示转义字符
java匹配预定义字符需要进行转移
PS: "a".matches("\\d")
X代表任意字符| 符号 | 作用 | 补充 |
|---|---|---|
X? | X 出现 一次或0次 | |
X* | X 出现 零次或多次 | |
X+ | X 出现 一次或多次 | |
X{n} | X 出现 正好n次 | {}代表出现的次数 |
X{n, } | X 出现 至少n次 | |
X{n,m} | X 出现 至少n次但不超过m次 |
"23dF.matches("[\\w&&[^_]]{4}")"\\w去除_的条件下,出现4次,所以结果是true+,*ab++?,*?ab*?| 符号 | 作用 |
|---|---|
| ` | ` |
&& | 相交 |
\ | 转义字符 |
() | 分组 |
[] | 范围 |
{} | 次数 |
(\\d+(\\d+)\\d+)a123a ----> Java正则表达式==>(.).+\\1\\1的意思是拿到第一组的数据复用,这里的1代指第一组(.+)每一个.+直到获取的数据和原来不是同一类型会自动结束\\ : 内部$: 外部| 符号 | 作用 |
|---|---|
(?:正则) | 获取所有 |
(?=正则) | 获取前面部分 |
(?!正则) | 获取不是指定内容的前面部分 |
"(?i)字符"表示对后面的字符忽略大小写System.*out*.println("aB".matches("(?i)ab"));---->true(?i)后面的字符才忽略大小写