Java正则表达式将LDAP路径转换为可分辨名称

Java正则表达式将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=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=

然后找到所有斜杠,后跟允许的字符,然后找到另一个斜杠,即
\(?=\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不支持条件替换术语。