定义
- 正则表达式是操作字符串的一种逻辑公式
用事先定义好的一些特定字符及这些特定字符的组合,组成一个规则字符串.
用规则字符串表达对字符串的一种过滤逻辑. - 规则字符串:
表示同一位置, 出现不同字符串的情况
使用
字符组 - 中括号内字符串匹配其中一个
正则 | 匹配字符 | 匹配结果 |
---|---|---|
[012345] | 5 | True |
[012345] | 8 | False |
[012345] | a | False |
[0-9] | 5 | True |
[a-z] | d | True |
[A-Z] | D | True |
[0-9a-zA-Z] | d | True |
元字符
元字符 | 匹配内容 | 示例 |
---|---|---|
. | 匹配除了换行符以外的任意字符 | |
\w | 匹配字母,数字,下划线 | |
\W | 匹配非(字母,数字,下划线) | |
\s | 匹配任意空白符 | |
\S | 匹配非空白符 | |
\d | 匹配数字 | |
\D | 匹配非数字 | |
\n | 匹配换行符 | |
\t | 匹配制表符 | |
\b | 匹配单词结尾 | a\b 匹配a结尾的单词 |
^ | 匹配开头 | |
$ | 匹配结尾 | |
a|b | 匹配a或b | |
() | 匹配()内表达式,也表示一个组 | |
[…] | 匹配字符组中其中一个字符 | |
[^…] | 匹配非字符组中的一个字符 |
量词
量词 | 用法说明 |
---|---|
* | 重复0次或多次 |
+ | 重复1次或多次 |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,} | 重复n次或或更多次 |
{n,m} | 重复n-m次 |
贪婪匹配(默认)和非贪婪匹配
正则 | 待匹配字符 | 匹配结果 | 说明 |
---|---|---|---|
\d+ | 1234 | 1234 | 使用回溯算法,到末尾往前找最后一个结束符 |
\d+? | 1234 | 1 2 3 4 | 末尾加上?, 转换为非贪婪匹配模式, 正向匹配成功就会返回结果 |