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

基于PCRE的正则匹配需求:提取指定键后无前置空白的内容

正则匹配解决方案

给定目标文本:

COLOR1=               Light Blue
COLOR2=    Dark Red

要实现传入COLOR1=时仅匹配Light Blue、传入COLOR2=时仅匹配Dark Red,同时去除等号后的前置空白,结合PCRE正则库(Nim语言基于此),可以采用以下方案:

核心正则表达式

针对单个键的匹配,使用:

(?<=COLOR1=)\s*([^\n]*)$

将其中的COLOR1=替换为COLOR2=即可匹配对应的值。

正则解释

  • (?<=COLOR1=):正向零宽断言,确保当前位置前是目标键的等号部分,不会被计入匹配结果
  • \s*:匹配等号后所有前置空白字符(包括空格、制表符),直接跳过这些空白
  • ([^\n]*)$:捕获从空白结束位置到行尾的所有内容([^\n]*避免跨行匹配,解决换行问题),捕获组1即为需要的目标文本

Nim语言示例代码

如果需要动态传入键名,可通过字符串拼接生成正则(注意转义特殊字符):

import re

proc getConfigValue(configText: string; key: string): string =
  let escapedKey = re.escape(key)
  let regexPattern = "(?<=" & escapedKey & "=)\\s*([^\\n]*)$"
  let matchResult = re.match(configText, regexPattern)
  if matchResult.isMatch:
    result = matchResult.group(1)
  else:
    result = ""

# 测试使用
let config = """COLOR1=               Light Blue
COLOR2=    Dark Red"""
echo getConfigValue(config, "COLOR1")  # 输出: Light Blue
echo getConfigValue(config, "COLOR2")  # 输出: Dark Red

内容的提问来源于stack exchange,提问作者Drackich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:48:23