Regex 当名称包含逗号时,如何编写正则表达式来读取LDAP路径中的名称?

Regex 当名称包含逗号时,如何编写正则表达式来读取LDAP路径中的名称?,regex,ldap,Regex,Ldap,下面的正则表达式工作正常: ^CN=([a-zA-Z\\]+\s+[a-zA-Z\\]+)\,.*$ 使用此值: CN=John Smith,OU=Staff,DC=internal,DC=net 留给我的是: John Smith 如果该值的名称中包含逗号,则会失败 CN=John\,Smith,OU=Staff,DC=internal,DC=net 公共名称中的逗号在LDAP中使用反斜杠\进行转义,因此不会导致路径中断 我的正则表达式看起来如何,因此我获得了John Smith甚至John\

下面的正则表达式工作正常:

^CN=([a-zA-Z\\]+\s+[a-zA-Z\\]+)\,.*$

使用此值:

CN=John Smith,OU=Staff,DC=internal,DC=net

留给我的是:

John Smith

如果该值的名称中包含逗号,则会失败

CN=John\,Smith,OU=Staff,DC=internal,DC=net

公共名称中的逗号在LDAP中使用反斜杠
\
进行转义,因此不会导致路径中断


我的正则表达式看起来如何,因此我获得了
John Smith
甚至
John\,Smith

如果格式始终为'CN=VAL,OU=VAL..,则可以使用'OU='作为组捕获的标记。它具有明确的优点,这使得它能够自我记录:

/^CN=(.+?),OU=.+$/
var输入=[
“CN=John\,Smith,OU=Staff,DC=internal,DC=net”,
'CN=John Smith,OU=Staff,DC=internal,DC=net'
];
var regexp=/^CN=(.+?),OU=.+$/;
var matches=inputs.map(函数(输入){
返回input.replace(regexp,$1');
});

document.write(“”+JSON.stringify(matches,null,4)+“”)为什么要使用正则表达式
ldapquery
可以为您做到这一点