目前我正在使用下面的正则表达式从LDAP路径中提取名称,它在路径中使用逗号之前一直正常工作。
当前正则表达式:
CN=([^,]*).*
在下面的示例LDAP路径中,我得到“Deborah”,我希望它返回“Deborah,James”。我不懂正则表达式,我花了好几个小时试图完成这项工作,任何人都可以帮我解决这个问题吗?
CN = Deborah \,James,OU = Staff,DC = Comp,DC = com
非常感谢。 杰克
答案 0 :(得分:1)
如果您处于受控环境中并且可以控制OU始终可以找到CN,那么您可以使用此功能:
CN=(.*),OU=
如果你不能保证,那么你可以使用这个稍微复杂但是如果任何其他属性跟随CN或CN是最后一个属性的话:
CN=(.*?)(?:,[A-Z]+=|$)
答案 1 :(得分:0)
您应该使用LDAP API来解析名称,而不是正则表达式。在Java JNDI中,这意味着从Context中获取NameParser。
答案 2 :(得分:0)
我尝试了此处列出的其他答案,但他们仍然返回公共名称之外的值。我不想要一个小组,所以这就是我想出来的。如果CN在DN或OU中,它将起作用。
(I:?(小于= CN =))。?*(?=,[A-ZA-Z] {0,2} = | $)