求一正则。

fanbingyuan 2012-01-18 08:57:21
CN=张三,OU=销售部,OU=太阳集团,OU=SunGroup,DC=sungroup,DC=com
字符串为上边格式字符串,
取出所有OU和CN的值。
一定要正则,截取字符串的就不要了。
谢谢。
...全文
187 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
苦苦的潜行者 2012-01-18
  • 打赏
  • 举报
回复
不过你想分开取值的话
还是建议分开写
(?<=CN=)(?<CN>.*?)(?=[,,])|(?<=OU=)(?<OU>.*?)(?=[,,])
分组1(CN) 分组2(OU)
----- -------
张三
销售部
太阳集团
SunGroup
苦苦的潜行者 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 p2227 的回复:]

全局匹配

(?<=OU=|CN=)(.*?)(?=[,,])
[/Quote]

++1
porschev 2012-01-18
  • 打赏
  • 举报
回复



Regex re = new Regex(@"(?i)(?<=OU=|CN=).*?(?=[,,])", RegexOptions.None);
MatchCollection mc = re.Matches("你的字符串");
foreach (Match ma in mc)
{
//ma.Value就是你要的值
}

//结果:张三
// 销售部
// 太阳集团
// SunGroup



诺维斯基 2012-01-18
  • 打赏
  • 举报
回复
这个用正则不好。
  • 打赏
  • 举报
回复
string pattern = @"\s*([^=]*?)=([^,,\s]*)[,,\s]*";
fanbingyuan 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 return_false 的回复:]
C# code

string tempStr = @"CN=张三,OU=销售部,OU=太阳集团,OU=SunGroup,DC=sungroup,DC=com";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
……
[/Quote]
介个,介个,少点东西吧。
牙签是竹子的 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 return_false 的回复:]

C# code
string tempStr = @"CN=张三,OU=销售部,OU=太阳集团,OU=SunGroup,DC=sungroup,DC=com";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
……
[/Quote]
关键的pattern 没有写
  • 打赏
  • 举报
回复
string tempStr = @"CN=张三,OU=销售部,OU=太阳集团,OU=SunGroup,DC=sungroup,DC=com";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
string output = m.Groups[1].Value +":"+ m.Groups[2].Value;
/*
CN:张三
OU:销售部
OU:太阳集团
*/
}
NdscFaineant 2012-01-18
  • 打赏
  • 举报
回复
来个简单的。
CN=([^,]+)
OU=([^,]+)
p2227 2012-01-18
  • 打赏
  • 举报
回复
全局匹配

(?<=OU=|CN=)(.*?)(?=[,,])
牙签是竹子的 2012-01-18
  • 打赏
  • 举报
回复
fanbingyuan 2012-01-18
  • 打赏
  • 举报
回复
各路神仙都帮忙啊。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧