3 正则表达式:简单的分组

分组:   一个字符串的模式应该看作一个不同的项。例如:要分别匹配姓和名。
  一 简单分组:
      1.1 捕获:"()" 
             概念:括号内的模式是整个模式的一个组,并作为一个组来匹配。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" ([A-Z]{3})d " );
matchesFound 
=  matchRegex.Matches( " ABC1 DEF2 XY " );
GroupCollection matchGroups;
foreach (Match match  in  matchesFound)
{
          matchGroups 
= match.Groups;
          Console.WriteLine(matchGroups[
1].Value);
}

     1.2  非捕获:"(?:)
            概念:括号内的模式不是整个模式的一个组,但作为整个模式的一个部分来匹配。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (?:d)w " );
matchesFound 
=  matchRegex.Matches( " 1A BB 1 c " );

foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}

    1.3 通过名称捕获:(?<name>)
           概念:括号内的模式是整个模式的一个组,并且通过尖括号的组名来匹配。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @"/b [A-Z][a-z]+ (?<lastName>[A-Z][a-z]+)/b " );
matchesFound 
=  matchRegex.Matches( " Zhao Rui yan li Gugu Da 123121 sdfd " );
GroupCollection matchGroups;
foreach (Match match  in  matchesFound)
{
    matchGroups 
= match.Groups;
    Console.WriteLine(matchGroups[
"lastName"].Value);
}

    1.4 比较简单的组

在括号内用"|"(或)来分组匹配的模式。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (Mr|Mrs|Miss|Ms|Dr) [A-Z][a-z]* " );
matchesFound 
=  matchRegex.Matches( " Mr Micole love Miss Sara " );
foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值