本文以示例的形式进行分布讲解:
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$"
更详细请参见CSDN:http://blog.csdn.net/fatfoxz/archive/2010/01/14/5188675.aspx