Javascript 字符串的正则表达式

Javascript 字符串的正则表达式,javascript,regex,Javascript,Regex,我有一堆字符串,需要从中返回子字符串 输出应替换以下内容的出现: Test: intervening text - Exists 与 我试过: 常量输入=[ '测试:文本-N GTTTsds-存在', '测试:此处文本内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; 常量输出=[]; inputs.forEachinput=>{ const resp=/?:测试:?。+-存在?/.execinput; output.pushresp

我有一堆字符串,需要从中返回子字符串

输出应替换以下内容的出现:

Test: intervening text - Exists

我试过:

常量输入=[ '测试:文本-N GTTTsds-存在', '测试:此处文本内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; 常量输出=[]; inputs.forEachinput=>{ const resp=/?:测试:?。+-存在?/.execinput; output.pushresp; };
console.logoutput 为什么不直接更换它们呢

常量输入=[ '测试:文本-N GTTTsds-存在', '测试:在此处输入内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; const output=inputs.mapinput=>input.replace/^Test:|-存在?$/g、.trim; console.logoutput 您可以在一个迭代中删除测试,并在另一个迭代中删除-存在

常量输入=[ '测试:文本-N GTTTsds-存在', '测试:在此处输入内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; const output=input.maps=>s.replace/Test:\s+/g、.replace/\-\Exists?/g、;
console.logoutput 您可以将此正则表达式与锚点和惰性量词一起使用:

/^(?:Test: )?(.+?)(?: - Exists?)?$/;
此外,您还需要从结果阵列中获取第一个捕获组

常量输入=[ '测试:文本-N GTTTsds-存在', '测试:在此处输入内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; 常量输出=[]; 常量re=/^?:测试:?。+:-存在??$/; var-resp; inputs.forEachinput=>{ resp=重新执行输入; 如果resp!=null&&resp.length>1 output.pushresp[1]; };
console.logoutput

其他解决方案:强制ReGEX匹配每个字符串^和$的开始和结束,并通过附加../p>使中间任意字符的量词变得懒惰。 常量输入=[ '测试:文本-N GTTTsds-存在', '测试:在此处输入内容-存在', “Tictao foo baz-bar-存在”, “有些东西还在这里”, “乔·多伊” ]; 常量输出=[]; inputs.forEachinput=>{ const resp=/^?:测试:?.+?-存在?$/.execinput; output.pushresp; };


console.logoutput;我为您创建了一个代码段,第二个输入字符串只包含Exist,末尾没有s。这是故意的吗?
/^(?:Test: )?(.+?)(?: - Exists?)?$/;