提取子
问题描述:
我有这样一个LDAP搜索输出:提取子
CN = ABC0000001,OU =组,DC =域,DC =净 CN = ABC4257635,OU =组,DC =域,DC = net CN = ABC1231231,OU = group,DC = domain,DC = net CN = XYZ0345432,OU = group,DC = domain,DC = net CN = XYZ0546322,OU = group,DC = domain,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输出中的每一行。
我怎样才能得到我想要的结果?
答
试试这个:
if(preg_match('/^CN=(ABC\d+)/', "CN=ABC0000001,OU=group,DC=domain,DC=net", $m))
{
echo $m[1];
}
'/ CN =(\ W *)/'? –
这应该与预期的输出相匹配。但是,您的请求看起来像是在尝试获取号码部分?在这种情况下,'CN =(([a-zA-Z] +)(\ d +)),' –
您可以检查https://regex101.com/r/Qmbz25/1并编辑您的问题以准确和清楚这点 ? –