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

正则表达式匹配数组中OwnValues直接子元素key17

解决方案

问题原因

你之前的正则(?<=OwnValues=)([\s\S]*key17)用了贪婪模式的[\s\S]*,会从第一个OwnValues=开始,尽可能匹配所有内容直到最后一个key17,自然会包含中间的ReferencedValues块。

正确正则写法

如果你想单独匹配作为OwnValues直接子元素的key17,可以用零宽断言结合非贪婪匹配,确保只在当前OwnValues的大括号范围内匹配:

(?<=OwnValues=\s*{[\s\S]*?)key17(?=[\s\S]*?})

如果你想匹配包含目标key17的整个OwnValues块,可以用:

OwnValues=\s*{[\s\S]*?key17[\s\S]*?}

正则解释

  • (?<=OwnValues=\s*{[\s\S]*?):正向后顾断言,确保key17前面是OwnValues=加上左大括号,以及任意非贪婪的内容(不会跨越到其他块)。
  • key17:目标匹配文本。
  • (?=[\s\S]*?}):正向前瞻断言,确保key17后面是任意非贪婪内容直到右大括号(限定在当前OwnValues的块内)。
  • [\s\S]*?:非贪婪的任意字符匹配,只会匹配到最近的目标位置,避免跨越其他结构块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:40:35