正则表达式~喜欢正则的朋友进
求一个正则表达式~喜欢正则的朋友进
String s= "cn=测试用户1,ou=测试机构1,ou=湖北省,ou=org,o=essp,c=cn";
我想把上面的字符串用正则替换为:
湖北省->测试机构1->测试用户1
需求是:ou=org,o=essp,c=cn可以直接去掉(当然ou=org,o=essp,c=cn之间可能是有空格的)
但ou=xxx的数量是可变的,如字符串也可能是这样:cn=测试用户1,ou=测试机构1,ou=测试一部,ou=湖北省
需要变为:湖北省->测试机构1->测试一部->测试用户1。
希望平时正则用的多的同学帮一把,谢谢。
用java语法实现~
------解决方案--------------------
这个规律性还是挺清晰的,如果不存在其它干扰字符,可以用字符串拼接实现:
String s= "cn=测试用户1,ou=测试机构1,ou=湖北省,ou=org,o=essp,c=cn";
我想把上面的字符串用正则替换为:
湖北省->测试机构1->测试用户1
需求是:ou=org,o=essp,c=cn可以直接去掉(当然ou=org,o=essp,c=cn之间可能是有空格的)
但ou=xxx的数量是可变的,如字符串也可能是这样:cn=测试用户1,ou=测试机构1,ou=测试一部,ou=湖北省
需要变为:湖北省->测试机构1->测试一部->测试用户1。
希望平时正则用的多的同学帮一把,谢谢。
用java语法实现~
正则表达式
String
------解决方案--------------------
这个规律性还是挺清晰的,如果不存在其它干扰字符,可以用字符串拼接实现:
public static void main(String[] args)
{
//目标字符串
String s = "cn=测试用户1,ou=测试一部,ou=测试机构1,ou=湖北省";
//无用字符存储器//如果是要求所有不能包含字母,就用正则式实现
List<String> noUseStrs = new ArrayList<String>();
noUseStrs.add("org");
noUseStrs.add("essp");
noUseStrs.add("cn");
//将所有的空格去掉
s = s.replaceAll("\\s", "");
System.out.println("去空格后:" + s);
String[] firstStepStrs = s.split(",");
//存放列表
List<String> allStrs = new ArrayList<String>();
String temp;
//循环分离的内容
for (String contex : firstStepStrs)
{
if (contex.indexOf("=") < 0)
{
continue;
}
temp = contex.split("=")[1];
if (noUseStrs.contains(temp))
{
continue;
}
allStrs.add(temp);
}