Javascript 如何在不同场景中的特殊字符之间匹配文本
我有不同场景中的字符串。其思想是在“代码”>< < /代码>的句子中间取正文。如果只有一个Javascript 如何在不同场景中的特殊字符之间匹配文本,javascript,regex,Javascript,Regex,我有不同场景中的字符串。其思想是在“代码”>< < /代码>的句子中间取正文。如果只有一个|,则将取第一部分 示例: 无用信息| |基本信息| |高级信息| |超级信息| |无信息 应匹配:基本信息和高级信息和超级信息 无用信息| |基本信息| |高级信息| |无信息 应匹配:基本信息和高级信息 无用信息| |基本信息| |无信息 应匹配:基本信息 无用信息| |没有信息 应匹配:Usless信息 我试过: ||[^||]*||[^||]* 还有这个: ([^||]*)(?=||) 但并非在
|
,则将取第一部分
示例:
无用信息| |基本信息| |高级信息| |超级信息| |无信息
应匹配:基本信息和高级信息和超级信息
无用信息| |基本信息| |高级信息| |无信息
应匹配:基本信息和高级信息
无用信息| |基本信息| |无信息
应匹配:基本信息
无用信息| |没有信息
应匹配:Usless信息
我试过:
||[^||]*||[^||]*
还有这个:
([^||]*)(?=||)
但并非在所有场景中都像预期的那样工作。可以只使用一个
regex
表达式执行此操作?您可以在不使用regex的情况下,在|
const字符串=[
“无用信息| |基本信息| |高级信息| |超级信息| |无信息”,
“无用信息| |基本信息| |高级信息| |无信息”,
“无用信息| |基本信息| |无信息”,
“无用信息| |无信息”
];
strings.forEach((s)=>{
让零件=s.拆分(“| |”);
让结果=[];
如果(parts.length==2){
结果:推送(零件[0]);
}
如果(parts.length==3){
结果:推动(第[1]部分);
}
如果(零件长度>3){
parts.shift();
parts.pop();
结果=零件;
}
控制台日志(结果);
});代码>可能类似于^((?:(?!\\\\\{2})。*)\\{2}(?。*\\\\{2})\\\\\{2}\s*(*?)(=\s*\\\\{2})
,请参见。是的,这很有效。如果你把它写成一个答案,我会接受的。而且,如果你能解释一下,可能会更好:)你应该用|
分开,这样更简单。