天天看点

C# 正则表达式(备忘录)

基本元字符 

.     匹配任意单个字符 

|     逻辑或操作 

[]    匹配字符集中的一个字符 

[^]  对字符集求非 

-     定义一个区间 

\      对下一个字符转义 

数量元字符 

*        匹配前一个字符(子表达式)的零次或多次重复  

*?     *的懒惰型版本 

+       匹配前一个字符(子表达式)的一次或多次重复 

+?    +的懒惰型版本 

?        配前一个字符(子表达式)的零次或多次重复 

{n}      匹配前一个字符(子表达式)的n次重复 

{m,n}  匹配前一个字符(子表达式)只是m次至多n次的重复 

{n,}     匹配前一个字符(子表达式)n次或更多次数的重复 

{n,}?   {n,}的懒惰型版本

位置元字符

^   匹配字符串的开头 

\a  匹配字符串的开头  

$    匹配字符串的结束

\z   匹配字符串的结束

\<  匹配单词的开始 

\>  匹配单词的结束

\b   匹配单词边界

\b  \b的反义 

特殊字符元字符

[/b] 匹配一个退格字符

/c 匹配一个控制字符

/d 匹配任意一个数字字符,等价于[0-9]

/d /d的反义

/f 换页符

/n 换行符

/r 回车符

/s 匹配一个空白字符

/s /s的反义

/t 制表符

/v 垂直制表符

/w 匹配任意字母、数字、下划线。等价于[a-za-z0-9_]

/w /w的反义

/x 匹配一个十六进制数字

/0 匹配一个八进制数字 

回溯引用和前后查找

( ) 定义一个子表达式

/1 第一个子表达式,同理/2表示第2个子表达式。/0通常表示整个正则表达式。

?= 向前查找

?<= 向后查找

?! 负向前查找

?!= 负向后查找

?() 条件(if then)

?()| 条件(if then else)