我在不同情况下都有字符串。这个想法是将文本放在||
之间的句子中间。如果只有一个||
,则将参加第一部分。
示例:
无用信息||基本信息||高级信息||超级信息||没有信息
应匹配:基本信息和高级信息和超级信息
无用信息||基本信息||高级信息||没有信息
应匹配:基本信息和高级信息
无用信息||基本信息||没有信息
应匹配:基本信息
无用信息||没有信息
应匹配:无用信息
我尝试过:
||[^||]*||[^||]*
和这个:
([^||]*)(?=||)
,但并非在所有情况下都能正常工作。可能只用一个regex
表达式就可以做到吗?
答案 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);
});