4 正则表达式:高级组

高级组:
  1 概念:在简单组(捕获组、非捕获组、名称捕获组)的基础上对分组的进一步划分。
  2 高级组划分:
     2.1 正声明:(?=) 匹配邻接模式组左侧部分的字符串。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" S+(?=.NET) " );
matchesFound 
=  matchRegex.Matches( " The languages wera Java, C#.NET, VB.NET, C, JScript.NET, Pascal " );
foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}

     2.2 负声明:(?!) 不匹配邻接模式组左侧部分的字符串。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" d{3}(?![A-Z]) " );
matchesFound 
=  matchRegex.Matches( " 123A 456c 789 111C " );
foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}

   2.3 反向正声明:(?<=) 匹配邻接模式组的右侧部分的字符串。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (?<=New) ([A-Z][a-z]+) " );
matchesFound 
=  matchRegex.Matches( " New Mexico,West Virginia, Washington,New England " );
foreach (Match match  in  matchesFound)
{
       Console.WriteLine(match.Value);
}

   2.4 反向负声明:(?<!)不匹配邻接模式组右侧部分的字符串。

MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (?<!1)d{2}[A-Z] " );
matchesFound 
=  matchRegex.Matches( " 123A 456F 789C 111A " );
foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}

  2.5 非回朔:(?>) 当正则表达式引擎匹配字符串到最后失败时,不在尝试向前重复匹配。

///回朔模式
MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (?>.*)ing " );
matchesFound 
=  matchRegex.Matches( " trusting " );
foreach (Match match  in  matchesFound)
{
    Console.WriteLine(match.Value);
}


///非回朔模式
MatchCollection matchesFound;
Regex matchRegex 
=   new  Regex( @" (.*)ing " );
matchesFound 
=  matchRegex.Matches( " trusting " );
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、付费专栏及课程。

余额充值