Regex rx = new Regex(@"(?<!\\\\),");
String test = "OU=James\\, Brown,OU=Test,DC=Internal,DC=Net";
Run Code Online (Sandbox Code Playgroud)
这很完美,但我想了解它.我一直没有成功.有人可以给我一个单词或短语,我可以用它来查看并理解它.
我原以为它应该写成这样:
new Regex(@"(\\\\)?,");
Run Code Online (Sandbox Code Playgroud)
我以前见过这个(?zzzzzz)语法.这<!是我被困扰的部分.
(?<!…)是一个负面的后视断言.在你的正则表达式
(?<!\\\\),
Run Code Online (Sandbox Code Playgroud)
这,显然与逗号匹配.本\\\\场比赛2个反斜线.然后(?<!\\\\),匹配任何前面没有 2个反斜杠的逗号.
因此它将匹配,OU和DC之前,但不匹配James和Brown之间:
OU=James\\, Brown,OU=Test,DC=Internal,DC=Net
^ ^ ^
Run Code Online (Sandbox Code Playgroud)