导入
组成
无论多么复杂的正则表达式,都是由如下4个部分组成:
-
字符类:包括单个字符和字符范围。例如:
- "a"匹配字符"a"
- "[abc]"匹配"a"、"b"或者"c"中的任意一个字符
- "[a-z]"匹配从"a"到"z"的任意一个小写字母
-
量词:用于指定前面的字符或字符组出现的次数。例如:
- "*"表示前面的字符可以出现0次或多次
- "+"表示前面的字符至少出现1次
- "?"表示前面的字符最多出现1次
-
锚点:用于指定匹配的位置。例如:
- "^"表示匹配行首
- "$"表示匹配行尾
- "^abc"表示匹配以"abc"开头的行
- "abc$"表示匹配以"abc"结尾的行
-
分组:使用括号"()"来分组。例如:
- "(ab)+"表示"ab"这个组合至少出现1次
- 分组还可以用于提取匹配的子字符串等操作
规则
能匹配单个字符的规则
| 方括号 | []定义字符类,匹配其一 |
| 排除字符类^ | []开头加^,匹配其余字符 |
能匹配很多规则的字符
| . | 匹配除换行外单个字符 |
| \d | 等价[0-9],匹配数字 |
| \D | 等价[^0-9],匹配非数字 |
| \w | 等价[a-zA-Z0-9_],匹配相关字符 |
| \W | 等价[^a-zA-Z0-9_],匹配其他 |
| \s | 匹配空白字符 |
| \S | 匹配非空白字符 |
量词
| * | 匹配前面0次或多次 |
| + | 匹配前面至少1次 |
| ? | 匹配前面最多1次 |
| {n} | 匹配前面恰好n次 |
| {n,} | 匹配前面至少n次 |
| {n,m} | 匹配前面n到m次 |
特殊规则
| 锚点 - ^ | 匹配行首 |
| 锚点 - $ | 匹配行尾 |
| 分组匹配() | 用()创建,可提取子串 |
更多内容请看下章🥰