代码之家  ›  专栏  ›  技术社区  ›  robe007 Leo Aguirre

如何在不同场景中匹配特殊字符之间的文本

  •  1
  • robe007 Leo Aguirre  · 技术社区  · 7 年前

    我有不同场景的字符串。这个想法,就是把课文放在句子中间 || . 如果只有一个 ,将作为第一部分。

    应该匹配: 基本情况 高级信息

    应该匹配: 基本情况

    无用信息| |基本信息| |无信息

    应该匹配: 基本情况

    应该匹配: 无用途信息

    我试过:

    ||[^||]*||[^||]*
    

    ([^||]*)(?=||)
    

    但在所有情况下都不能像预期的那样工作。只有一个人能做到 regex

    1 回复  |  直到 7 年前
        1
  •  3
  •   The fourth bird    7 年前

    你可以不用正则表达式 split ||

    const strings = [
      "Useless information|| basic information|| advanced information|| super information|| no information",
      "Useless information|| basic information|| advanced information|| no information",
      "Useless information|| basic information|| no information",
      "Useless information|| no information"
    ];
    
    strings.forEach((s) => {
      let parts = s.split("||");
      let result = [];
      if (parts.length === 2) {
        result.push(parts[0]);
      }
      if (parts.length === 3) {
        result.push(parts[1]);
      }
      if (parts.length > 3) {
        parts.shift();
        parts.pop();
        result = parts;
      }
      console.log(result);
    });