正则表达式在第一个OU =之后得到字符串

时间:2014-10-28 14:32:07

标签: .net regex

所以我有这个字符串CN=Jcombat,OU=Users,OU=US,OU=Support,DC=alphas,DC=akman,DC=net

我有这个正则表达式给我包括第一个OU在内的所有内容,所以最后的字符串应如下所示:OU=Users,OU=US,OU=Support,DC=alphas,DC=akman,DC=net

这种模式(?=-\"OU=")不应该给我我需要的东西吗?

2 个答案:

答案 0 :(得分:1)

正向前瞻(?= ... )是零宽度断言,它不会消耗"字符串上的任何字符,但只断言匹配是否可能。你可以匹配" OU ="到字符串的末尾。

String s = "CN=Jcombat,OU=Users,OU=US,OU=Support,DC=alphas,DC=akman,DC=net";
Match m  = Regex.Match(s, @"OU=.*");
if (m.Success)
    Console.WriteLine(m.Value); //=> "OU=Users,OU=US,OU=Support,DC=alphas,DC=akman,DC=net"

答案 1 :(得分:1)

OU=.*$

应该为你做。

(?=OU=).*$

(?=OU=)会为您提供一个位置OU=之前的位置,但您也需要使用它。 ?=只是一个断言。它不消耗字符串。