You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式如何精准匹配两指定字符串间的紧邻目标内容

正则匹配LDAP条目CN值解决方案

问题场景

现有竖线分隔的LDAP DN拼接字符串,格式示例如下:

cn=doc_medical,ou=tged,ou=groupes,o=choregie,c=fr|cn=test,ou=test,ou=test,o=choregie,c=fr|cn=doc_confidentiel,ou=tged,ou=groupes,o=choregie,c=fr|cn=test,ou=test,ou=test,o=choregie,c=fr

需要提取所有后缀为,ou=tged,ou=groupes,o=choregie,c=fr的DN对应的CN值,以上示例预期输出为doc_medical和doc_confidentiel。
原有正则(?=cn=)(.*?)(?<=,ou=tged,ou=groupes,o=choregie,c=fr)存在跨条目匹配问题,第二个匹配结果会包含前一个无关DN的全部内容,不符合预期。

可用正则

直接使用以下正则执行全局匹配,取第一个捕获组内容即可:

cn=([^|,]+),ou=tged,ou=groupes,o=choregie,c=fr

逻辑说明

  • 匹配规则限定cn=和目标后缀之间的内容不能包含竖线|(DN条目分隔符)和逗号,(DN键值对分隔符),从根本上避免跨条目匹配
  • 该规则会自动定位到目标后缀之前最近的一个cn=,不需要预知两个边界之间的字符长度
  • 捕获组([^|,]+)返回的内容就是需要的CN值,无多余字符

匹配结果验证

针对示例字符串执行全局匹配,两个捕获组的返回值分别为:

  • 第一次匹配:doc_medical
  • 第二次匹配:doc_confidentiel
    完全符合预期。

内容的提问来源于stack exchange,提问作者Philippe B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:09:15