【问题标题】:Regex replace last (something)正则表达式替换最后一个(东西)
【发布时间】:2018-06-07 15:03:37
【问题描述】:

我有一组数据,其中总是包含这样的内容:

title(s) (some_text)

现在我想用正则表达式删除(东西)。

我的问题:(some_text) 中的值可以是任何值。

知道如何使用正则表达式解决这个问题吗?

一些示例数据:

Egg(s) (whole) 
Berry (mix) (g)

预期输出:

Egg(s)
Berry (mix)

【问题讨论】:

  • 可以添加示例数据吗
  • 能否添加示例输入和输出
  • title(s) 的字面意思是title 还是titles

标签: javascript ecmascript-6


【解决方案1】:

使用\s\(.*\)$,您可以删除数据的最后一部分

这里是example

【讨论】:

    【解决方案2】:

    假设您将每一行放在一个单独的字符串中,您可以使用它来匹配应该删除的内容:

    \s*\([^(]*\)\s*$

    在脚本中:

    var tests = ["Egg(s) (whole) ", "Berry (mix) (g)"];
    for (let s of tests) {
        s = s.replace(/\s*\([^(]*\)\s*$/, "");
        console.log(s);
    }

    【讨论】:

      【解决方案3】:

      这就是我要做的,使用这个正则表达式/\s\([^(]*\)$/

      var tests = ["Egg(s) (whole)", "Berry (mix) (g)"];
      tests.forEach(function(str, i){
        tests[i] = str.replace(/\s\([^(]*\)$/, '');
      });
      
      console.log(tests);

      您不能使用更简单的/\s\(.*\)$/,因为它会为“Berry (mix) (g)”返回“Berry”。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2022-06-15
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 2020-02-28
        • 2022-01-22
        相关资源
        最近更新 更多