目前我正在使用下面的正则表达式从LDAP路径中提取名称,它可以正常工作,直到在路径中使用逗号。
当前正则表达式:
CN=([^,]*).*
在下面的LDAP路径示例中,我得到了“Deborah \”,我希望它返回“Deborah,James”。我不理解正则表达式,并且已经花费了几个小时尝试使其工作,有人可以帮助我解决吗?
CN=Deborah\, James,OU=Staff,DC=Comp,DC=com
非常感谢。 Jake
CN=(.*),OU=
如果您无法保证,那么可以使用这个较为复杂的方法,但是如果CN后面跟着任何其他属性或者CN在最后一个位置,它将起作用:
CN=(.*?)(?:,[A-Z]+=|$)
在编程中,应该使用LDAP API来解析名称,而不是正则表达式。在Java JNDI中,这意味着从上下文中获取一个NameParser。
我尝试了这里列出的其他答案,但它们仍然返回了通用名称以外的值。我不想要一个组,所以这就是我想出来的东西。如果DN或OU中有CN,它将起作用。
(?i:(?<=CN=)).*?(?=,[A-Za-z]{0,2}=|$)