0

我正在使用 Spring Security 3.1 Active Directory。

我有一个 AD 结构,我需要从 AD 结构 distinctName 属性中获取一个 OU 值。

我想要的 OU 将始终是最后一个 DC 之后的第一个 OU。

下面是我的代码示例 -我需要获取 myCompany OU 值,必须有更好的方法来做到这一点:

公共类测试{

public static void main(String[] args) {

    String s = "cn=harry,cn=group,ou=myCompany,ou=customers,dc=this,dc=that";

    System.out.println("s: "+s);

    String s1 = s.substring(s.indexOf("ou=") + 3);

    System.out.println("s1: "+s1);

    String s2 = s1.substring(s1.indexOf(""), s1.indexOf(",ou="));

    System.out.println("s2: "+s2);

}

}

这将输出以下内容:

s: cn=harry,ou=myCompany,ou=customers,dc=this,dc=that 
s1: myCompany,ou=customers,dc=this,dc=that 
s2: myCompany

有人可以帮忙吗?

4

1 回答 1

1

正则表达式!在下面选择你的口味(第一个或第二个):

public static void main (String[] args){
     String s = "cn=harry,cn=group,ou=users,ou=myCompany,ou=customers,dc=this,dc=that";

     String first = s.replaceAll(".*?,ou=(.*?),.*", "$1");
     String middle = s.replaceAll(".*?,ou=.*?,ou=(.*?),.*", "$1");
     String third = s.replaceAll(".*,ou=(.*?),.*", "$1");

     System.out.println(first);
     System.out.println(middle);
     System.out.println(third);
}
于 2013-01-24T00:55:23.127 回答