以下字符串包含由分号连接的多个可分辨名称。我需要使用正则表达式模式来区分可分辨名称。
"CN=s\,tttrrr,OU=OU1,DC=dom1,DC=local;CN=g\;hi\,klm,OU=OU1,DC=dom1,DC=local;CN=rrr\ttt,OU=OU1,DC=dom1,DC=local;CN=Vvvv,OU=OU1,DC=dom1,DC=local"
需要的结果:
CN=s\,tttrrr,OU=OU1,DC=dom1,DC=local
CN=g\;hi\,klm,OU=OU1,DC=dom1,DC=local
CN=rrr\ttt,OU=OU1,DC=dom1,DC=local
CN=Vvvv,OU=OU1,DC=dom1,DC=local
答案 0 :(得分:2)
您需要对分号进行Regex.Split
,但使用Zero-width negative lookbehind assertion.排除反斜杠转义的内容 - 基本上检查分号之前与{不匹配}的内容{1}},但不要将其包含在拆分中。
此格式为\
,您希望此格式匹配但忽略反斜杠(?<!pattern)
,然后最后匹配分号,因此完整模式变为[\\]
:
@"(?<![\\]);"
输出:
答案 1 :(得分:0)
尝试此模式(?i:;)?([^>]+?local)
答案 2 :(得分:0)
string input= @"CN=s\,tttrrr,OU=OU1,DC=dom1,DC=local;CN=g\;hi\,klm,OU=OU1,DC=dom1,DC=local;CN=rrr\ttt,OU=OU1,DC=dom1,DC=local;CN=Vvvv,OU=OU1,DC=dom1,DC=local";
Regex pattern = new Regex(@"(?<=local);");
string[] result = pattern.Split(input);
result.ToList().ForEach(a => Console.WriteLine(a));
输出:
CN=s\,tttrrr,OU=OU1,DC=dom1,DC=local
CN=g\;hi\,klm,OU=OU1,DC=dom1,DC=local
CN=rrr\ttt,OU=OU1,DC=dom1,DC=local
CN=Vvvv,OU=OU1,DC=dom1,DC=local
答案 3 :(得分:0)