我有以下字符串:
cn=abcd,cn=groups,dc=domain,dc=com
这里可以使用正则表达式在第一个之后和第一个cn=
之前提取字符串,
吗?在上面的例子中,答案应该是abcd
.
/cn=([^,]+),/
大多数语言将比赛提取为$ 1或匹配[1]
如果由于某种原因不能使用下标,
$x =~ s/^cn=// $x =~ s/,.*$//
这是一个通过两个步骤完成它的方法.
如果你用sed从日志中解析它
sed -n -r '/cn=/s/^cn=([^,]+),.*$/\1/p' < logfile > dumpfile
会得到你想要的.(添加额外命令仅打印匹配行)
/^cn=([^,]+),/