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

开发 后端
C#正则表达式之回溯与非回溯是什么呢?C#正则表达式之回溯与非回溯是如何使用的呢?C#正则表达式之回溯与非回溯代表什么意思呢?那么本文就向你介绍具体的内容。

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

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

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

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

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

【编辑推荐】

  1. C#正则表达式之重复描述字符浅析
  2. C#正则表达式之择一匹配浅析
  3. C#正则表达式之特殊字符的匹配浅析
  4. C#正则表达式之组与非捕获组浅析
  5. C#正则表达式之贪婪与非贪婪浅析
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-08-20 13:48:37

C#正则表达式

2009-08-20 13:44:07

C#正则表达式

2009-08-07 15:16:10

C#正则表达式

2009-08-20 13:09:28

C#正则表达式

2009-08-20 13:57:27

C#正则表达式

2009-08-20 13:26:35

C#正则表达式

2009-08-20 15:10:33

C#正则表达式

2009-08-20 15:02:41

C#正则表达式

2009-08-20 15:06:51

C#正则表达式

2009-08-20 14:57:00

C#正则表达式

2009-08-20 13:30:38

C#正则表达式

2009-08-20 14:43:03

C#正则表达式Rege

2009-08-20 13:38:58

C#正则表达式

2009-08-20 13:23:00

C#正则表达式

2009-08-17 13:56:28

C#正则表达式入门

2009-08-03 17:27:14

C#正则表达式

2009-08-20 16:13:32

C#正则表达式匹配

2009-08-20 13:34:36

C#正则表达式

2011-07-06 11:04:42

C#正则表达式

2009-08-20 14:31:55

C#正则表达式字符串
点赞
收藏

51CTO技术栈公众号