C#正则表达式之回溯与非回溯是什么呢?我们学习这部分需要知道的有哪些东西呢?让我们开始吧:
成都创新互联公司技术团队十载来致力于为客户提供网站制作、成都网站建设、成都品牌网站建设、营销型网站建设、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上1000家网站,包括各类中小企业、企事单位、高校等机构单位。
使用“(?>…)”方式进行非回溯声明。由于正则表达式引擎的贪婪特性,导致它在某些情况下,将进行回溯以获得匹配
请看下面的C#正则表达式之回溯与非回溯示例:
- string x = "Live for nothing,die for something";
- Regex r1 = new Regex(@".*thing,");
- if (r1.IsMatch(x))
- {
- Console.WriteLine("match:" + r1.Match(x).Value);//输出:Live for nothing,
- }
- Regex r2 = new Regex(@"(?>.*)thing,");
- if (r2.IsMatch(x))//不匹配
- {
- Console.WriteLine("match:" + r2.Match(x).Value);
- }
- //在r1中,“.*”由于其贪婪特性,将一直匹配到字符串的***,
- //随后匹配“thing”,但在匹配“,”时失败,
- //此时引擎将回溯,并在“thing,”处匹配成功。
- //在r2中,由于强制非回溯,所以整个表达式匹配失败。
C#正则表达式之回溯与非回溯使用的基本内容就向你介绍到这里,希望对你了解和学习C#正则表达式有所帮助。
网站名称:C#正则表达式之回溯与非回溯浅析
链接地址:http://www.shufengxianlan.com/qtweb/news6/254256.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联