C#中利用正则表达式实现字符串搜索

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值