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}
-如果下一个字符是(?!;)
,则匹配失败代码>
-将零个或多个字符(包括换行符)匹配到最后3个分号,并且结尾的第4个字符不能是([\s\s]*?[^;])
代码>(注意:与独立字符串一起使用时,将
替换为[\s]*?
,贪婪版本!)[\s]*
-3个分号;{3}
-字符串结尾$
- 如果您感兴趣,这里有一个使用
拆分的解决方案
var str=“;;我的结果;;-->My Result;;;标题:学习正则表达式;;;-->标题:学习正则表达式;;;带有所有特殊字符!@$%^&*()';\”;;;-->使用所有特殊字符!@$%^&*()';\“;;;这应该不返回任何内容-->\”\“”;
var res=str.split(;;;);
res.forEach(函数(值){
console.log(值);
});代码>好吧,您至少可以尝试一下,尽管它也会捕获;ssss代码>在;;;;(一);代码>。但是<代码>
比短;{3}
您可以改用str.split
吗?@mconstr.split
vsregex
对于多次出现和性能,什么是更好的选择请注意注释。这很重要,因为它会影响性能。解释非常有用+1.