Java正则表达式获得精确的令牌值

时间:2014-03-03 19:10:05

标签: java regex

我的字符串如下所示,想要获得cn=ADMIN的值,但不知道如何使用正则表达式高效的方法。

  

组:192.168.133.205:387 / CN = ADMIN,CN =基团,DC = MI,DC = COM,DC = USA

3 个答案:

答案 0 :(得分:1)

好吧......好像这样?

package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexSample {
    public static void main(String[] args) {
        String str = "group:192.168.133.205:387/cn=ADMIN,cn=groups,dc=mi,dc=com,dc=usa";
        Pattern pattern = Pattern.compile("^.*/(.*)$");
        Matcher matcher = pattern.matcher(str);
        if (matcher.matches()) {
            String right = matcher.group(1);
            String[] parts = right.split(",");
            for (String part : parts) {
                System.err.println("part: " + part);
            }
        }

    }
}

输出是:

part: cn=ADMIN
part: cn=groups
part: dc=mi
part: dc=com
part: dc=usa

答案 1 :(得分:0)

   String bubba = "group:192.168.133.205:387/cn=ADMIN,cn=groups,dc=mi,dc=com,dc=usa";
   String target = "cn=ADMIN";

   for(String current: bubba.split("[/,]")){
       if(current.equals(target)){
           System.out.println("Got it");
       }
   }

答案 2 :(得分:0)

正则表达式的模式 cn=([a-zA-Z0-9]+?), 您的名字将在匹配器的第1组中。如果允许空格等,可以扩展字符类。