首页 > 解决方案 > 正则表达式中异或(XOR)的第二个条件

问题描述

我想要一些关于我正在处理的正则表达式中异或的第二个条件的帮助。

这个正则表达式的目的是获取后面的字符串,cn=并且一直到一个括号被一个空格成功或一直到两个右括号。

在第一种情况下,它将是我不想出现在我的匹配数据上的空白空间之后的文本,但我无法摆脱它,例如:

(&(cn=Another (test))) (&(cn=Another (test)) (objectClass=group))

在上面的这个例子中,我只想得到另一个(测试)

我尝试了否定的前瞻,但无法使其工作。

到目前为止我得到了什么:

https://rubular.com/r/DVV830IGSGiNSf

编辑:

我需要得到的是与cn=文本在同一个括号内的字符串,除了cn=它本身。我需要突出显示的内容:

(&(cn=测试))

(&(cn=测试) (objectClass=group))

(&(CN= Te(st)ing ))

(&(CN= Te(st)ing ) (objectClass=group))

(&(cn=另一个 (测试) ))

(&(cn=另一个 (test) ) (objectClass=group))

(&(cn=访问 RW \Srv-corp\ScriptsDesenv ))

(&(cn=访问 RW \Srv-corp\ScriptsDesenv ) (objectClass=group))

(&(cn=访问() ))

(&(cn= Access() ) (objectClass=group))

标签: regex

解决方案


我建议在匹配的括号处拆分字符串,cn然后使用(cn|CN)=([0-9a-zA-Z \\()-])+


推荐阅读