正则表达式用于对字符串进行匹配。
一:匹配模式文本:
正则表达式的匹配模式文本常包括以下内容:
元字符:拥有特殊含义的字符;
元字符 | 说明 |
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母、数字;C#中还支持汉字;等价于[a-zA-Z0-9] |
\W | 与上相反,匹配非数字字母;等价于[^a-zA-Z0-9] |
\s | 匹配空白字符 |
\S | 与上相反,匹配非空白字符 |
\d | 匹配数字 |
\D | 与上相反,匹配非数字 |
\b | 匹配单词开始或者结束的位置 |
\B | 与上相反,匹配非单词开始或者结束的位置 |
^ | 匹配字符串开始的位置 |
$ | 匹配字符串结束的位置 |
表示重复次数的:
类别 | 说明 |
? | 表示左边的部分重复0次或者1次 |
* | 表示左边的部分重复0次或者多次 |
+ | 表示左边的部分重复1次或者多次 |
{min, max} | 表示左边的部分重复min次到max次 |
{min, } | 表示左边的部分重复最少min次 |
{num} | 表示左边的部分重复num次 |
表示分组的:
类别 | 语法 | 说明 |
捕获 | (abc) | 匹配abc,并捕获文本到自动命名的组里;或者表示重复次数适用哪些模式文本, |
(?<name>abc) | 匹配exp,并捕获文本到名称为 name 的组里,也可以写成(?’name’exp) | |
(?:abc) | 匹配exp,不给分组分配组号,也不捕获匹配文本;但不影响分组0 | |
断言 | (?=abc) | 匹配abc前面的,但是不匹配abc,即文本后面必须有abc,但分组0不会获得abc。 |
(?<abc) | 匹配abc后面的,但是不匹配abc,即文本前面必须有abc,但分组0不会获得abc。 | |
(?!abc) | 匹配文本后面不是abc的,但不匹配abc,分组0不会获得abc。 | |
(?<! abc) | 匹配文本前面不是abc的,但不匹配abc,分组0不会获得abc。 | |
注释 | (?#comment) | 注释 |
其他:
类别 | 说明 |
[abc] | 匹配括号中的abc中的任意一个(必须要匹配一个字符) |
[^abc] | 匹配除括号中字符以外的一个字符(必须要匹配一个字符) |
| | 表示 或;匹配 | 前面的模式 或 后面的模式 |
\char | 匹配特殊字符,如\*匹配*;\?匹配? |
\num | 反向引用 | 表示第num个捕获型括号捕获的文本(括号计数是按照左括号出现的顺序算的,注意嵌套括号) |
时间: 2024-10-16 20:53:09