My Result ;;; Title:Learni-6ren">
gpt4 book ai didi

JavaScript:正则表达式获取 ";;;"之间的字符串

转载 作者:行者123 更新时间:2023-11-30 16:17:08 24 4
gpt4 key购买 nike

我见过几个与我的问题相关的类似帖子,但我无法正确使用正则表达式。

如何获取“;;;”之间的字符串如下图

;;; 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}$

对于独立字符串,使用带有greedy 量词的版本:

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

参见 demo

解释:

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

关于JavaScript:正则表达式获取 ";;;"之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com