C#正则表达式的特定字符或转义序列

大多数重要的正则表达式语言运算符都是非转义的单个字符。转义符 " (单个反斜杠)通知正则表达式分析器反斜杠后面的字符不是运算符。

例如,分析其将星号(*)视为重复限定符,而将后跟星号的反斜杠("*)视为Unicode字符 002A。
使用一般表达式要习惯的一点是,察看像这样怪异的字符序列,但这个序列的工作非常逻辑化的。专业序列 "S表示任何不适空白的字符。* 称为数量词,其含义是前面的字符可以重复任意次,包括0次。序列 "S*表示任何不适空白的字符。

特定字符或转义序列
特定字符或转义序列 含义 样例 匹配的样例
^ 输入文本的开头 ^B B但只能是文本中的第一个字符
$ 输入文本的结尾 X$ X但只能是文本中的最后一个字符
. 除了换行字符("n)以外的所有单个字符 i.ation isation 、ization
* 可以重复0次或多次的前导字符 ra*t

rat、raat等

+ 可以重复1次或多次的前导字符 ra+1 rt、rat、raat等
? 可以重复0次或1次的前导字符 ra?1 只有rt和rat匹配
"s 任何空白字符 "sa [space]a, "ta,"na("t和"n与C#的"t和"n含义相同)
"S 任何不是空白的字符 "SF aF,rFcF,但不能是 "tF
"b 字边界 ion"b 以ion结尾的任何字
"B 不是字边界 "BX"B 自中间的任何X
       

如果要搜索一个元字符,也可以通过带有反斜杠的转义字符来表示。例如
.表示除了换行字符以外的任何字符。而 ". 表示一个点。

可以把可替换的字符放在方括号[ ]中,请求匹配包含这些字符。例如,[1|c],表示字符可以是1或者是c。如果要搜索map或者man,可以用序列"ma[n|p] "(仅指引号内字符)。在方括号中,也可以指定一个范围,例如"[a-z]"表示所有的小写字符(使用连字号(-)允许指定连续字符范围),"[B- F]"表示B到F之间的所有大写字母。
如果要搜索一个整数(该序列只包含0-9的字符),就可以编写"[0-9]+",(注意使用(+)表示至少要有这样一个数字。)

例如 string pattern = @""ba"S*ion"b" 表示以a开头,ion结尾的字符了!
posted @ 2009-03-31 22:00  refeiner  阅读(1215)  评论(0编辑  收藏  举报