Capture 类包含来自单个子表达式捕获的结果
在 Group 集合中循环,从 Group 的每一成员中提取 Capture 集合,并且将变量 posn 和 length 分别分配给找到每一字符串的初始字符串中的字符位置,以及每一字符串的长度。
Regex r;
Match m;
CaptureCollection cc;
int posn, length;
r = new Regex("(abc)*");
m = r.Match("bcabcabc");
for (int i=0; m.Groups[i].Value != ""; i++)
{
cc = m.Groups[i].Captures;
for (int j = 0; j < cc.Count; j++)
{
posn = cc[j].Index; //捕获对象位置
length = cc[j].Length; //捕获对象长度
}
}
特定字符或转义序列
特定字符或转义序列 | 含义 | 样例 | 匹配的样例 |
^ | 输入文本的开头 | ^B | B,但只能是文本中的第一个字符 |
$ | 输入文本的结尾 | X$ | X,但只能是文本中的最后一个字符 |
. | 除了换行字符(\n)以外的所有单个字符 | i.ation | isation、ization |
* | 可以重复0次或多次的前导字符 | ra*t | rat、raat等 |
+ | 可以重复1次或多次的前导字符 | ra+t | rt、rat、raat等 |
? | 可以重复0次或1次的前导字符 | ra?t | 只有rt和rat匹配 |
\s | 任何空白字符 | \sa | [space]a,\ta,\na(\t和\n与C#的\t和\n含义相同) |
\S | 任何不是空白的字符 | \SF | aF,rF,cF,但不能是\tf |
\b | 字边界 | ion\b | 以ion结尾的任何字 |
\B | 不是字边界的位置 | \BX\B | 字中间的任何X |