[英]Extracting values using Regex - C#
我对正则表达式并不熟悉。 我有一个字符串,我需要使用正则表达式提取特定值。 这是字符串
CN=ReportingGroup {b4f3d644-9361-461e-b604-709fa31f2b9e},OU=DOM USERS,DC=domain,DC=com
我想得到CN和OU的值,即“ReportingGroup {b4f3d644-9361-461e-b604-709fa31f2b9e}”和“DOM USERS”
从上面的字符串。 我如何为此构建正则表达式模式?
您不需要RegEx。
如果使用分割字符串,
然后使用=
分隔每个结果字符串,则可以查看键以提取CN
和OU
键的值。
string cn;
string ou;
foreach(string adPortion in myString.Split(new Char [] {','}))
{
string[] kvp = adPortion.Split(new Char [] {'='})
if(kvp[0] == "CN")
cn = kvp[1];
if(kvp[0] == "OU")
ou = kvp[1];
}
这假设CN
和OU
仅在字符串中出现一次。
请执行下列操作:
new Regex("CN=(?<CN>[^,]*),OU=(?<OU>[^,]*)").Match(str).Groups["CN"].Value;
看起来你的字符串结构很好。 考虑使用常规字符串函数,如IndexOf()
和Substring()
。 正则表达式更难阅读和理解。
如果您绝对想要使用Regex,以下代码将迭代所有KEY = VALUE对:
foreach (Match m in
Regex.Matches(inputString, @"[,]*([^=]+)=([^,]*)"))
{
string key = m.Groups[1].Value;
string value = m.Groups[2].Value;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.