关于正则表达式的见解
正则表达式是什么?
个人感觉正则表达式是一种用于搜索文本各元素的符号组合。
正则表达式的用途
- 查找
- 替换
- 验证
- 提取
正则表达式语法
基本法则
/正则表达式/
/用来表示正则表达式的开始和结束
或运算符 |
转义字符 \
后缀搜索符号
+ 代表前面的字符必须至少出现一次* 代表前面的字符可以不出现,也可以出现一次或者多次? 代表前面的字符最多只可以出现一次
普通字符
| 元字符 | 描述 |
|---|---|
| . | 匹配除换行符外的任意单个字符 |
| [] | 可理解为一个字符集合,匹配方括号内的任意字符 |
| [^ ] | 否定的字符种类,匹配除了方括号里的任意字符 |
| {} | 通常作为量词使用,常用于限定一个或一组字符可以重复出现的次数 |
| (xyz) | 字符集,匹配与括号内相等的字符串 |
| ^ | 从开始行开始匹配 |
| $ | 从末端开始匹配 |
简写字符
| 简写 | 描述 |
|---|---|
\w |
匹配所有字母和数字,相当于[a-zA-Z0-9_] |
\W |
匹配所有非字母数字,相当于[^\w] |
\d |
匹配数字,相当于[0-9] |
\D |
匹配非数字,相当于[^\d] |
\s |
匹配空格字符 |
\S |
匹配非空格字符 |
\f |
匹配一个换页符 |
\n |
匹配一个换行符 |
\r |
匹配一个回车符 |
\t |
匹配一个制表符 |
\v |
匹配一个垂直制表符 |
\p |
匹配CR/LF(相当于\r\n),用于匹配DOS行终止符 |
零宽度断言
| 符号 | 描述 |
|---|---|
?= |
正先行断言 |
?! |
负先行断言 |
?<= |
正后发断言 |
?<! |
负后发断言 |
| 说明: | |
| 正先行断言 (?=…): 匹配后面紧跟着某个模式的位置。 | |
| 负先行断言 (?!…): 匹配后面不紧跟着某个模式的位置。 | |
| 正后发断言 (?<=…): 匹配前面是某个模式的位置。 | |
| 负后发断言 (?<!…): 匹配前面不是某个模式的位置。 | |
| 这些是正则表达式中的环视或断言结构,用于匹配特定位置,不消耗字符。 |
模式修正符
| 标志 | 描述 |
|---|---|
g |
全局搜索 |
i |
忽略大小写 |
m |
多行修饰符 |
贪婪匹配与惰性匹配
正则表达式默认采用贪婪匹配模式
使用?将贪婪匹配模式转化为惰性匹配模式
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 微光zc的网络小窝!
评论


