gpt4 book ai didi

javascript - 使用 RegEx 获取用大括号括起来并转义的字符串

转载 作者:行者123 更新时间:2023-12-01 01:07:16 25 4
gpt4 key购买 nike

我想提取花括号内的文本。但复杂的是,任何带有反斜杠 \ 的右大括号 } 也应该包含在结果中。

例如,对于字符串 {abc123*-\\}},我想将文本提取为 abc123*-\\}

这是我迄今为止实现的代码示例:

var content = '{abc123*-\\}}{sdf}';
var regex = /\{(?<text>([^\}]|(?<=\\)\})*?)\}/;
var firstMatch = content.match(regex); // results 'abc123*-\\'

最佳答案

您可以使用

var content = '{abc123*-\\}}{sdf}';
var regex = /\{([^\\{}]*(?:\\[^][^\\{}]*)*)}/;
var firstMatch = content.match(regex); // results 'abc123*-\\'
if (firstMatch) {
console.log(firstMatch[1]); // => abc123*-\}
}

详细信息

  • \{ - 一个 { 字符
  • ([^\\{}]*(?:\\[^][^\\{}]*)*) - 捕获组 1:
    • [^\\{}]* - 除 \{} 之外的 0+ 个字符
    • (?:\\[^][^\\{}]*)* - 0 次或多次重复
      • \\[^] - 任何转义字符(\ 后跟任何字符)
      • [^\\{}]* - 除 \{} 之外的 0+ 个字符
  • } - 一个 } 字符。

请参阅regex demo和一个Regulex graph :

enter image description here

关于javascript - 使用 RegEx 获取用大括号括起来并转义的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com