解析LDAP dn的正则表达式

时间:2020-03-06 14:23:33  来源:igfitidea点击:

我有以下字符串:

cn=abcd,cn=groups,dc=domain,dc=com

是否可以在此处使用正则表达式来提取第一个cn =之后和第一个之前的字符串?在上面的示例中,答案应为" abcd"。

解决方案

是的,使用perl / java语法cn =([^,] *),。然后,我们将获得第一组。

/^cn=([^,]+),/

/cn=([^,]+),/

大多数语言会将匹配项提取为$ 1或者matchs [1]

如果我们由于某种原因不能使用下标,

$x =~ s/^cn=//
$x =~ s/,.*$//

那是一个分两步完成的方法。

如果我们使用sed从日志中解析它

sed -n -r '/cn=/s/^cn=([^,]+),.*$//p'    < logfile > dumpfile

会给你你想要的。 (添加了仅用于打印匹配行的额外命令)

另外,寻找预建的LDAP解析器。