python - Python LDAP查询的过滤结果

标签 python regex ldap

我正在尝试使用 Python 和 ldap 模块对 LDAP 查询结果进行一些处理。在返回的 LDAP 对象列表中(实际上是一些元素是字典的列表列表),我有“cn”属性,其值如下: tag-<username> , krh-<username> , tag-<username>-ab , tag-<username>-ac , tag-<username>-ad , rrt-<username> .

我只想使用那些具有确切模式的 tag-<username> (以 tag- 开头,末尾不带 -ab-ac-ad )。

最简单的方法是什么?我假设与正则表达式匹配,但在这种情况下使用正确的正则表达式是什么?

谢谢!

最佳答案

您可以使用此正则表达式来过滤结果:tag-([^-]+)$

括号允许捕获匹配的用户名,但您不一定需要它。

  • tag-匹配字符 tag-从字面上看(区分大小写)。
  • 正在捕获组 ([^-]+)
    • [^-]+匹配以下列表中不存在的单个字符:
      • -匹配字符 -从字面上看(区分大小写)。
      • +量词:匹配一次到无限次,尽可能多的次数,根据需要回馈(贪婪)。
  • $在字符串末尾或在字符串末尾的行终止符之前(如果有)断言位置。

例如,字符串 tag-usertest给出完整匹配,捕获组 usertest ,以及类似 tag-usertest-<any> 的字符串不会匹配。

您可以在这里运行一些测试:https://regex101.com/r/D4a7I7/1/tests

关于python - Python LDAP查询的过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48293157/

相关文章:

python - scikit-learn ExtraTreeClassifier 和 RandomForestClassifier 的图

javascript代码检查特殊字符并在其之前添加双斜杠?

debugging - 如何查看端口 389 上的 LDAP 流量?

docker - 如何将 CA 根证书添加到 Jenkins Docker 容器上的 LDAP keystore ?

Python Twisted 与 callInThread

python - 覆盖来自第三方应用程序的 URL 模式

regex - 在Grails中使用自定义验证时给出自定义错误消息的问题

javascript - 正则表达式匹配两个或多个不连续的相同字符

.net - 密码是否使用 DirectoryEntry 安全传输

python - 使用Python(Bash?)获取操作系统级别的系统信息(CPU速度)