1.玩转正则表达式
1.1了解正则表达式
1.1.1什么是正则表达式?
正则表达式是一个文本匹配工具,可以匹配普通字符和特殊字符
1.1.2正则表达式有什么用?
- 验证字符串(文本)
- 查找字符串(文本)
- 替换字符串(文本)
- 提取字符串(文本)
1.1.3正则表达式格式
语法格式:/pattern/flags
1.2正则表达式的模式
正则表达式的模式可以包括以下内容
字面值字符:例如字母、数字、空格等,可以直接匹配它们自身
特殊字符:例如点号.、星号*、加好+、问号?等,他们具有特殊的含义和功能
字符类:用括号[]包围的字符集合,用于匹配方括号内任意一个字符
元字符:例如\d、\w、\s等用于匹配特定类型的字符,如:字数、字母、空白字符等
量词:例如{n}、{n,}、{n,m}等,用于匹配指定匹配的字数或范围
边界符号:例如^、$、\b、\B等,用于匹配字符串的开头、结尾或单词边界位置
1.2.1正则表达式元字符和特性
- 普通字符
普通字符按照字面意思进行匹配,例如匹配字母"a"
将匹配
- 元字符
- 量词
量词 | 描述 |
---|---|
* | 匹配前面的模式零次或多次 |
+ | 匹配前面的模式一次或多次 |
? | 匹配前面的模式零次或一次 |
{n} | 匹配前面的模式恰好 n 次 |
{n,} | 匹配前面的模式至少 n 次 |
{n,m} | 匹配前面的模式至少 n 次且不超过 m 次 |
- 字符类
字符类 | 描述 |
---|---|
[] | 匹配括号内的任意一个字符 |
[^] | 匹配除了括号内字符以外的任意一个字符 |
- 边界匹配
边界匹配 | 描述 |
---|---|
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
\b | 匹配单词边界 |
\B | 匹配非单词边界 |
- 分组和捕获
分组、捕获 | 描述 |
---|---|
() | 用于分组和捕获子表达式 |
(?😃 | 用于分组但不捕获子表达式 |
- 特殊字符
特殊字符 | 描述 |
---|---|
\ | 转意字符、用于匹配特殊字符本身 |
. | 匹配任意字符(除了换行符) |
| | 用于指定多个模式的选择 |
1.3示例
字符
限定符
字符类
贪婪与懒惰机制