本文以示例的形式进行分布讲解: string Pattern = @"\bn"; (1)\b表示以什么字母开头的字符串,\bn表示以n开头的字符 (2)如果不加@,则会理解为退格+n的字符串。 同样的道理 string Pattern = @"ion\b"; 表示以ion结尾的字符。 string Pattern = @"\ba\S*ion\b"; (1)表示以a开头,以ion结尾的 (2)*表示任意字符,但是必须依托于具体的字符,\S表示不是空白的字符,注意不是空字符串,这样限制后,则表示是以a开头,ion结尾的,中间可以是任意不能为空白字符的字符。 ^ 输入文本的开头 $ 输入文本的结尾 . 除了换行字符(\n)以外的所有单个字符 * 可以重复0次或多次的前导字符 + 可以重复1次或多次的前导字符 ? 可以重复0次或1次的前导字符 \s 任何空白字符 \S 任何不是空白的字符 \b 字边界 \B 不是字边界的位置 \BX\B 字中间的任何X ion\b 以ion结尾的任何字 \SF aF、rF、cF、但不能是\tf ra*t rt、rat、raat和raaat等 (1)可以使用转义字符,例如要搜索“.”,则可以使用“\.” (2)可以把可替换的字符放在方括号中,请求匹配包含这些字符。例如,[1|c]表示字符可以是l或c。如果要搜索map或man,可以使用序列ma[n|p]。 (3)在方括号中,也可以指定一个范围, 例如[a-z]表示所有的小写字母, [A-E]表示A到E之间的所有大写字母, [0-9]表示一个数字。 (4)如果要搜索一个整数(该序列只包含0到9的字符),就可以编写[0-9]+(注意,使用+字符表示至少要有这样一个数字,但可以有多个数字,所以9、 83和 854等都是匹配的)。 限定符 { n } 指定恰好 n 个匹配;例如 (pizza){2}。 { n ,} 指定至少 n 个匹配;例如 (abc){2,}。 { n , m } 指定至少 n 个但不多于 m 个匹配。例如(abc){2,3} 补充占位符 \w 相当于a-z或者A-Z或者0-9或者_的任何字符。 \w 等效于 [a-zA-Z_0-9]。 \W 相当于不是a-z或者A-Z或者0-9或者_的任何字符。则 \W 等效于 [^a-zA-Z_0-9]。
规则
^ 输入文本的开头
$ 输入文本的结尾
. 除了换行字符(\n)以外的所有单个字符
* 可以重复0 次或多次的前导字符
+ 可以重复1 次或多次的前导字符
? 可以重复0 次或1 次的前导字符
\s 任何空白字符
\S 任何不是空白的字符
\b 字边界
\B 不是字边界的位置
举例
^B B,但只能是文本中的第一个字符
X$ X, 但只能是文本中的最后一个字符
i.ation isation、ization
ra*t rt、rat、raat 和raaat 等
ra+t rat、raat 和raaat 等(但不能是rt)
ra?t 只有rt 和 rat 匹配
\sa [space]a、\ta、\na(\t 和\n 与C#的\t 和\n 含义相同)
\SF aF、rF、cF、但不能是\tf
ion\b 以ion 结尾的任何字
\BX\B 字中间的任何X
具体事例:
1:【数字、 单个】例如 01 --2:【数字、 分组】例如 73,73,73 --3:【数字 分隔】例如 06-07 --4:【字符 单个字符】例如 A --5:【字符、字符数字】例如 A00 --6:【字符、字符分隔】例如 A15.0-A15.3 --7:【字符、分隔分组】例如 Q00-Q04,Q06-Q07 --8:【字符、 分组】例如 S02,S12,S22,S32,S42,T52 1. \d 2. @"^(\d+\,)*\d\b$" 3. @"^\d+\-\d+$" 4. @"^[a-zA-Z]{1}$" 5. @"^[a-zA-Z]{1}\d+$" 6. @"^[a-zA-Z]{1}\d+-[a-zA-Z]{1}\d+$" 7. @"^([a-zA-Z]{1}\d+-[a-zA-Z]{1}\d+)+$" 8. @"^([a-zA-Z]{1}\d+\,)*[a-zA-Z]{1}\d+\b$"
更详细请参见:http://blog.csdn.net/fatfoxz/archive/2010/01/14/5188675.aspx
相关资源:C# 最全的日期正则表达式,没有之一