首页 > 代码库 > 正则表达式——基础知识

正则表达式——基础知识

正则表达式用于对字符串进行匹配。

一:匹配模式文本:

正则表达式的匹配模式文本常包括以下内容:

元字符:拥有特殊含义的字符;

元字符 说明
 . 匹配除换行符以外的任意字符
 \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个捕获型括号捕获的文本(括号计数是按照左括号出现的顺序算的,注意嵌套括号)

 

正则表达式——基础知识