用于解析LDAP dn的正则表达式

Edd*_*wad 4 regex

我有以下字符串:

cn=abcd,cn=groups,dc=domain,dc=com
Run Code Online (Sandbox Code Playgroud)

这里可以使用正则表达式在第一个之后和第一个cn=之前提取字符串,吗?在上面的例子中,答案应该是abcd.

Ken*_*ric 12

 /cn=([^,]+),/ 
Run Code Online (Sandbox Code Playgroud)

大多数语言将比赛提取为$ 1或匹配[1]

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

$x =~ s/^cn=//
$x =~ s/,.*$//
Run Code Online (Sandbox Code Playgroud)

这是一个通过两个步骤完成它的方法.

如果你用sed从日志中解析它

sed -n -r '/cn=/s/^cn=([^,]+),.*$/\1/p'    < logfile > dumpfile 
Run Code Online (Sandbox Code Playgroud)

会得到你想要的.(添加额外命令仅打印匹配行)