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

如何编写正则提取Path与child(支持带数字括号后缀)之间的字符串

问题原因分析
  • 匹配失败的核心原因确实和方括号有关:正则语法中[]是定义字符组的元字符,直接书写[0]会被识别为匹配单个字符0,而非字面量字符串[0],需要用反斜杠转义\[、\]才能匹配字面量方括号。
  • 原有正则的前瞻规则仅覆盖了child[0]场景,未兼容child[1]和无括号的child场景。
正确正则表达式

(?<=Path\.)[^.]*(?=\.child(?:\[\d+\])?)

规则说明
  • (?<=Path\.):正向后顾断言,限定匹配位置的前缀必须是字面量Path.,其中的.做了转义处理,避免被识别为正则通配符。
  • [^.]*:匹配0个或多个非.的字符,精准捕获两个点之间的parent段,相比惰性匹配.*?执行效率更高,不会出现意外跨段匹配的问题。
  • (?=\.child(?:\[\d+\])?):正向前瞻断言,限定匹配位置的后缀规则:
    • 固定前缀为字面量.child
    • 后续可选匹配[数字]结构:(?:\[\d+\])?为非捕获组,?表示该组可出现0次或1次,同时兼容带括号的child[0]/child[1]和无括号的child场景,方括号均做了转义处理。
匹配效果验证
  • 测试串Path.parent.child[0]:匹配结果为parent
  • 测试串Path.parent.child[1]:匹配结果为parent
  • 测试串Path.parent.child:匹配结果为parent

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:06:01