Skip to main content
 首页 » 编程设计

c#之这个正则表达式在做什么 : new Regex( @"(<!\\),");

2024年01月13日40emanlee

Regex rx = new Regex(@"(?<!\\\\),"); 
String test = "OU=James\\, Brown,OU=Test,DC=Internal,DC=Net"; 

这很完美,但我想了解它。我一直在努力,但没有成功。谁能给我一个词或短语,我可以用它来查找和理解它。

本以为应该这样写:

 new Regex(@"(\\\\)?,"); 

我看过 (?zzzzzz)之前的语法。这是 <!我被难住的部分。

请您参考如下方法:

(?<!…)是 negative look-behind assertion .在你的正则表达式中

(?<!\\\\), 

,显然匹配逗号。 \\\\匹配 2 个反斜杠。然后 (?<!\\\\),匹配任何前面没有 2 个反斜杠的逗号。

因此它将匹配 ,在 OU 和 DC 之前,但不是在 James 和 Brown 之间:

OU=James\\, Brown,OU=Test,DC=Internal,DC=Net 
                 ^       ^           ^