什么是正则表达式?简单的理解就是用于记录文本规则的代码。
\b 开头或结尾;
. 除了换行外的其他字符;
- 匹配本身;
{} 重复次数; {2}重复2次;
\w 匹配字母数字下划线话汉字
\d 匹配数字;
\s 匹配任意数量空白符
^ 字符串开始
$ 字符串结束
+ 重复一次或更多次
? 重复零次或一次
{n,m} 重复n到m次
[] 字符集合
| 分枝
() 子表达式
\W 匹配不是字母数字下划线或汉字的
\B 匹配不是开头和结尾
\D 匹配不是数字
\S 匹配不是空格
[^s] 匹配除了s以外的任意字符
分类 | 代码/语法 | 说明 |
---|---|---|
捕获 | (exp) | 匹配exp,并捕获文本到自动命名的组里 |
(?<name>exp) | 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) | |
(?:exp) | 匹配exp,不捕获匹配的文本,也不给此分组分配组号 | |
零宽断言 | (?=exp) | 匹配exp前面的位置 |
(?<=exp) | 匹配exp后面的位置 | |
(?!exp) | 匹配后面跟的不是exp的位置 | |
(?<!exp) | 匹配前面不是exp的位置 | |
注释 | (?#comment) | 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读 |