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

正则表达式解析证书主题键值对:如何捕获最后一组键值对

解决正则无法匹配最后一组证书主题键值对的问题

这个坑我之前也踩过!你写的正则里,正向预查(?=\w+\s*=)要求当前匹配的value后面必须跟着另一个键值对的开头,但最后一组的后面根本没有下一个key=,自然就被漏掉了。

只需要给预查条件加一个“或者到字符串结尾”的分支就行,修改后的正则是:

(?<key>\w+)\s*=\s*(?<value>.*?)(?=\w+\s*=|$)

关键修改说明

把原来的(?=\w+\s*=)替换成(?=\w+\s*=|$),其中|$表示“匹配到字符串末尾”。这样正则就会明白:要么后面有下一个键值对,要么已经到内容结尾了,这两种情况都可以结束当前value的匹配。

实际测试效果

用你提供的目标主题内容:

CN = Some CN to catch SERIALNUMBER = aaaa bbbb, O = SIGNATUR,C=PL

修改后的正则会正确捕获所有4组键值对:

  • CN: Some CN to catch
  • SERIALNUMBER: aaaa bbbb,
  • O: SIGNATUR,
  • C: PL

哪怕你的value里包含空格、逗号这类特殊字符,非贪婪匹配.*?也能准确停在合适的位置,不会过度匹配。

内容的提问来源于stack exchange,提问作者Sławomir Rosiek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:52:14