【问题标题】:Regex - Match a specific syntax and split them [duplicate]正则表达式 - 匹配特定语法并将它们拆分 [重复]
【发布时间】:2020-10-15 05:09:00
【问题描述】:

我需要匹配特定的正则表达式语法并将它们拆分,以便我们可以将它们匹配到字典中的等效值。

输入:

{Expr "string"}
{Expr "string"}{Expr}

当前代码:

value.match(/\{.*\}$/g)

所需的输出:

[{Expr "string"}]
[{Expr "string"},{Expr}]

【问题讨论】:

  • 你需要使用非贪婪的.*?
  • 试过valueToMatch.match(/\{.*?\}$/g)同样的结果
  • 去掉$,它会强制它一直匹配到最后。
  • 成功了,感谢您的帮助!

标签: javascript regex


【解决方案1】:

使用非贪婪量词.*?。并且不要使用$,因为这会强制它一直匹配到字符串的末尾。

value = '{Expr "string"}{Expr}'
console.log(value.match(/\{.*?\}/g));

【讨论】:

    【解决方案2】:

    假设您的 JavaScript 版本支持它,一个选项是按照以下正则表达式模式拆分输入:

    (?<=\})(?=\{)
    

    这表示在两个术语之间的每个}{ 连接处拆分。

    var input = "{Expr \"string\"}{Expr}";
    var parts = input.split(/(?<=\})(?=\{)/);
    console.log(parts);

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2019-09-29
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多