如何在不同情况下的特殊字符之间匹配文本

时间:2018-10-08 21:08:17

标签: javascript regex

我在不同情况下都有字符串。这个想法是将文本放在||之间的句子中间。如果只有一个||,则将参加第一部分。

示例:

  

无用信息||基本信息||高级信息||超级信息||没有信息

应匹配:基本信息高级信息超级信息

  

无用信息||基本信息||高级信息||没有信息

应匹配:基本信息高级信息

  

无用信息||基本信息||没有信息

应匹配:基本信息

  

无用信息||没有信息

应匹配:无用信息

我尝试过:

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

和这个:

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

,但并非在所有情况下都能正常工作。可能只用一个regex表达式就可以做到吗?

1 个答案:

答案 0 :(得分:3)

您可以在没有正则表达式和||上的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);
});