从ldap搜索中提取子字符串

时间:2017-07-28 11:18:56

标签: php string ldap preg-match

我有一个像这样的ldap搜索输出:

  

CN = ABC0000001,OU =组,DC =域,DC =净   CN = ABC4257635,OU =组,DC =域,DC =净   CN = ABC1231231,OU =组,DC =域,DC =净   CN = XYZ0345432,OU =组,DC =域,DC =净   CN = XYZ0546322,OU =组,DC =域,DC =净   CN = ABC5465747,OU =组,DC =域,DC =净

我想基于^ ABC模式仅打印CommonName部分,因此我得到以下结果:

  

ABC0000001
  ABC4257635
  ABC1231231
  ABC5465747

看来preg_match可能是实现这一目标的工具,但是我试图获得" CN = ABC"之间的子串。和第一个","具有以下行的字符没有成功(它返回NULL):

preg_match('CN=(([ABC]+)(\d+)),',$string,$m); echo $m[1];

其中$string应该是我的ldap输出中的每一行。

如何获得理想的结果?

1 个答案:

答案 0 :(得分:2)

试试这个:

if( preg_match('/^CN=(ABC\d+)/', "CN=ABC0000001,OU=group,DC=domain,DC=net", $m ) )
{
    echo $m[1];
}