Java正则表达式将LDAP路径转换为可分辨名称
我有以下格式的组名列表: g=group1/cat_red/cat_top/domain1 g=组2/猫灯/猫绿/猫下/域名2 我想提取如下区别名称: CN=group1,OU=cat\u red,OU=cat\u top,DC=domain1,DC=internal CN=group2,OU=cat\u灯,OU=cat\u绿,OU=cat\u下,DC=domain2,DC=internalJava正则表达式将LDAP路径转换为可分辨名称,java,regex,replace,Java,Regex,Replace,我有以下格式的组名列表: g=group1/cat_red/cat_top/domain1 g=组2/猫灯/猫绿/猫下/域名2 我想提取如下区别名称: CN=group1,OU=cat\u red,OU=cat\u top,DC=domain1,DC=internal CN=group2,OU=cat\u灯,OU=cat\u绿,OU=cat\u下,DC=domain2,DC=internal 路径的长度不同。它可以由正则表达式完成吗?首先将字符串开头出现的g=替换为CN= 然后找到所有斜杠,后跟
路径的长度不同。它可以由正则表达式完成吗?首先将字符串开头出现的
g=
替换为CN=
然后找到所有斜杠,后跟允许的字符,然后找到另一个斜杠,即\(?=\w\)
,并将第一个斜杠替换为,OU=
。对第一个斜杠之后的所有内容都使用lookahead,这就是?=
所做的
然后找到斜杠,后跟允许的字符和字符串的结尾,将斜杠替换为
,DC=
,并附加DC=internal
(我猜这是您拼写错误的)。虽然您没有太多的边格,但这适用于那些您有:
String name = ldap.replaceAll("^g", "CN").replaceAll("/([^/]+$)", ",DC=$1,DC=internal").replace("/", ",OU="); // a missing comma added
这很好,但我正在寻找一个表达式正则表达式。这可能吗?@PyGuy不可能,因为java不支持条件替换术语。