查询LDAP多值属性中不包含';t仅包含特定值

查询LDAP多值属性中不包含';t仅包含特定值,ldap,ldap-query,multivalue,Ldap,Ldap Query,Multivalue,假设我的LDAP有一个多值属性foo。Foo包含一个或多个字符串,每个字符串以2位数字结尾,从01到99: dn: object1 foo: text$01 foo: text$02 foo: text$03 dn: object2 foo: text$03 要排除foo包含以*03结尾的值的所有对象,筛选器将如下所示: (!(foo=*03)) 对于上面的示例,这将给出0个结果。 我的问题有点难。我想要所有对象,其中foo=*03不是唯一的值。 因此,如果foo包含文本$03和任何附

假设我的LDAP有一个多值属性foo。Foo包含一个或多个字符串,每个字符串以2位数字结尾,从01到99:

dn: object1
foo: text$01  
foo: text$02
foo: text$03

dn: object2
foo: text$03
要排除foo包含以*03结尾的值的所有对象,筛选器将如下所示:

(!(foo=*03))
对于上面的示例,这将给出0个结果。 我的问题有点难。我想要所有对象,其中foo=*03不是唯一的值。
因此,如果foo包含文本$03和任何附加值,我希望在结果中获得该对象。在本例中,结果应为object1。
我试过这样的方法:

(& (foo=*) (!(foo=*03)) )
但正如我所料,第二部分将隐藏foo包含*03的任何对象

所以我问,有没有办法只在LDAP中解决这个问题


请原谅我的英语,它不是我的母语:(

你能做一些像
(或者(foo=*[012456789])(foo=*[123456789]?)
?这意味着保留最后一个数字不是
3
或最后一个数字旁边不是
0
的任何内容。否。LDAP子字符串搜索不是正则表达式或通配符,而是子字符串。有关搜索筛选器的字符串表示形式,请参阅RFC4515。