【问题标题】:Stop regex capture at end of the line control string在行控制字符串末尾停止正则表达式捕获
【发布时间】:2025-12-23 18:05:12
【问题描述】:

考虑到以下字符串,我怎样才能让我的 REGEX 在第一个 \r 处停止捕获并捕获从 CN= 开始的所有字符?

CrtDN: CN=user1,OU=place1-sp,O=happy3,O=really\r\n\r\n>

【问题讨论】:

  • 你有什么正则表达式?
  • 相当肯定……比如CN=[^\r]+,就是CN,后面跟着不是\r的任何东西。你可能想添加\n,所以CN=[^\r\n]+
  • 在 SPLUNK 中使用正则表达式

标签: regex eol


【解决方案1】:

许多模式都会产生匹配。一种成功的模式如下。 See demo here.

https://regex101.com/r/pS6aV7/2
CrtDN:\s(.*?)\\r

【讨论】:

    【解决方案2】:

    要匹配目标,请使用带有否定字符类的look behind:

    (?<=CN=)[^\r]+
    

    【讨论】: