我在这里有以下示例:
https://regex101.com/r/cE1sB4/3
基本上,我有一个非捕获正则表达式组。但是,我想扩展它,因此在DC =后不包含任何内容。
我的非捕获组中有DC =但它仍然包含DC =和
之间的文本这是我的正则表达式(我是新手!)
(?:OU=|CN=|DC=)(\w+[^,;])(?:,|$)
示例字符串:
CN=me,OU=test,OU=test,DC=donot,DC=includeme
任何帮助都会很棒。
我只想包括:我测试测试
谢谢!
答案 0 :(得分:0)
只需从非捕获组中删除DC=
,然后打印组索引1以获得所需的输出。
(?:OU=|CN=)(\w+[^,;])(?:,|$)
String input = @"CN=me,OU=test,OU=test,DC=donot,DC=includeme";
Regex rgx = new Regex(@"(?:OU=|CN=)(\w+[^,;])(?:,|$)");
foreach (Match m in rgx.Matches(input))
Console.WriteLine(m.Groups[1].Value);
答案 1 :(得分:0)
非正则表达式解决方案如何:
var input = "CN=me,OU=test,OU=test,DC=donot,DC=includeme";
var commaSplit = input.Split(',');
var keyValues = commaSplit.Select(x =>
{
var equalsSplit = x.Split('=');
return new KeyValuePair<string, string>(
equalsSplit[0],
equalsSplit[1]);
});
var notDcs = from kvp in keyValues
where kvp.Key != "DC"
select kvp.Value;
Console.WriteLine(String.Join(", ", notDcs)); // me, test, test
答案 2 :(得分:0)