JavaScript:Regex以获取介于“之间”的字符串&引用;

JavaScript:Regex以获取介于“之间”的字符串&引用;,javascript,regex,Javascript,Regex,我看到过两篇类似的帖子,都是关于我的问题的,但我无法正确理解我的正则表达式 如何将字符串置于“;;”之间,如下所示 ;;; My Result ;;; --> My Result ;;; Title:Learning Regex ;;; --> Title:Learning Regex ;;; with all special characters !@#$%^&*()';" ;;; --> with all special characters !@#$%^&

我看到过两篇类似的帖子,都是关于我的问题的,但我无法正确理解我的正则表达式

如何将字符串置于“;;”之间,如下所示

;;; My Result ;;; --> My Result
;;; Title:Learning Regex ;;; --> Title:Learning Regex
;;; with all special characters !@#$%^&*()';" ;;; --> with all special characters !@#$%^&*()';"
;;; this should return nothing --> ""
尝试下面的解决方案,但没有运气

 var str = ';;; Title:Learning Regex ;;;';
 var res= str.match(/^;{3}\w;{3}$/).pop();

任何JavaScript正则表达式专家,请提供帮助。

此任务的最大问题是您可能需要区分非三个分号分隔符

我建议

^;{3}(?!;)([\s\S]*?[^;]);{3}$
对于独立字符串,请使用带有贪婪量词的版本:

^;{3}(?!;)([\s\S]*[^;]);{3}$
                 ^

说明:

  • ^
    -字符串的开头
  • ;{3} 
    -3个分号
  • (?!;)
    -如果下一个字符是
    ,则匹配失败
  • ([\s\s]*?[^;])
    -将零个或多个字符(包括换行符)匹配到最后3个分号,并且结尾的第4个字符不能是
    注意:与独立字符串一起使用时,将
    [\s]*?
    替换为
    [\s]*
    ,贪婪版本!)
  • ;{3} 
    -3个分号
  • $
    -字符串结尾

    • 如果您感兴趣,这里有一个使用
      拆分的解决方案

      var str=“;;我的结果;;-->My Result;;;标题:学习正则表达式;;;-->标题:学习正则表达式;;;带有所有特殊字符!@$%^&*()';\”;;;-->使用所有特殊字符!@$%^&*()';\“;;;这应该不返回任何内容-->\”\“”;
      var res=str.split(;;;);
      res.forEach(函数(值){
      console.log(值);
      
      });好吧,您至少可以尝试一下,尽管它也会捕获
      ;ssss
      ;;;;(一);。但是<代码>
      短;{3} 
      您可以改用
      str.split
      吗?@mcon
      str.split
      vs
      regex
      对于多次出现和性能,什么是更好的选择请注意注释。这很重要,因为它会影响性能。解释非常有用+1.