C#正则表达式之回溯与非回溯浅析

C#正则表达式之回溯与非回溯是什么呢?我们学习这部分需要知道的有哪些东西呢?让我们开始吧:

成都创新互联公司技术团队十载来致力于为客户提供网站制作、成都网站建设成都品牌网站建设营销型网站建设、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上1000家网站,包括各类中小企业、企事单位、高校等机构单位。

使用“(?>…)”方式进行非回溯声明。由于正则表达式引擎的贪婪特性,导致它在某些情况下,将进行回溯以获得匹配

请看下面的C#正则表达式之回溯与非回溯示例:

 
 
 
  1. string x = "Live for nothing,die for something";
  2. Regex r1 = new Regex(@".*thing,");
  3. if (r1.IsMatch(x))
  4. {
  5. Console.WriteLine("match:" + r1.Match(x).Value);//输出:Live for nothing,
  6. }
  7. Regex r2 = new Regex(@"(?>.*)thing,");
  8. if (r2.IsMatch(x))//不匹配
  9. {
  10. Console.WriteLine("match:" + r2.Match(x).Value);
  11. }
  12. //在r1中,“.*”由于其贪婪特性,将一直匹配到字符串的***,
  13. //随后匹配“thing”,但在匹配“,”时失败,
  14. //此时引擎将回溯,并在“thing,”处匹配成功。
  15. //在r2中,由于强制非回溯,所以整个表达式匹配失败。

C#正则表达式之回溯与非回溯使用的基本内容就向你介绍到这里,希望对你了解和学习C#正则表达式有所帮助。


网页名称:C#正则表达式之回溯与非回溯浅析
文章位置:http://www.hxwzsj.com/article/cddihhi.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: H5网站制作 网站建设公司 温江网站设计 成都响应式网站建设公司 手机网站设计 达州网站设计 移动手机网站制作 成都商城网站制作 高端网站设计 营销型网站建设 外贸营销网站建设 专业网站设计 手机网站建设 营销型网站建设 泸州网站建设 重庆电商网站建设 成都网站建设 企业网站设计 做网站设计 企业网站制作 网站建设方案 手机网站制作