You need to enable JavaScript to run this app. 如何使用正则表达式从指定格式字符串中提取两个目标匹配值
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式从指定格式字符串中提取两个目标匹配值

正则写法解决方案

原有正则问题说明

你之前使用的\[(.*?)\]仅会匹配整个方括号内的完整内容,得到的是Entity:Equipment、Property:Space两个结果,没有进一步提取冒号后的目标字段。

正确正则写法

场景1:确定字符串固定为[x:y]@[x:z]格式

直接使用如下正则即可一次性捕获两个目标值:

\[.*?:(.*?)\]@\[.*?:(.*?)\]

捕获组1对应Equipment,捕获组2对应Space。
以JavaScript为例的使用示例:

const targetStr = '[Entity:Equipment]@[Property:Space]'
const matchRes = targetStr.match(/\[.*?:(.*?)\]@\[.*?:(.*?)\]/)
// matchRes[1] 输出 Equipment
// matchRes[2] 输出 Space

场景2:需要全局匹配所有方括号内冒号后的值(不受中间分隔符限制)

使用带全局标识的正则,遍历提取每个匹配项的捕获组即可:

\[.*?:(.*?)\]

以JavaScript为例的使用示例:

const targetStr = '[Entity:Equipment]@[Property:Space]'
const reg = /\[.*?:(.*?)\]/g
const result = []
let matchItem
while ((matchItem = reg.exec(targetStr)) !== null) {
  result.push(matchItem[1])
}
// result 输出 ['Equipment', 'Space']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:15:08