带有重复字符串的正则表达式JavaScript

山雀

我想使用以下格式的正则表达式文件进行解析,以便检索content1a,content1b,content2a,content2b等。

===
content1a
===
content1b
===
content2a
===
content2b

重要提示:文件末尾不包含===

这个正则表达式几乎可以完成工作:

/[===[\s\S]*?===[.]*/g 

但不检索最后一个内容(content2b)

谢谢你的帮忙

第四只鸟

您尝试的模式使用字符类,该字符类也可以写为[\s\S]*?===([^]*?)===

它期望===最后出现,这就是为什么is不匹配最后一个内容。

但是,例如,如果您有5次等号,=====您还将匹配最后2个等号,因此您可以添加换行符来防止这种情况。


而不是使用[\s\S]*?你可以使用一个捕获组来捕获不启动的所有行===

^===\n((?:(?!===\n).*\n?)*)

正则表达式演示

const regex = /^===\n((?:(?!===\n).*\n?)*)/gm;
const str = `===
content1a
===
content1b
===
content2a
content2a
content2a
===
content2b`;
let m;

while ((m = regex.exec(str)) !== null) {
  // This is necessary to avoid infinite loops with zero-width matches
  if (m.index === regex.lastIndex) {
    regex.lastIndex++;
  }
  console.log(m[1]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在带有url的正则表达式字符串的javascript中查找?

字符串中带有“ /”的JavaScript正则表达式

Javascript - 带有字符串模板后跟 4 位数字的正则表达式?

使用正则表达式获取子字符串(带有“”的字符串)

正则表达式删除重复的字符串

正则表达式重复字符串

Javascript正则表达式从中间字符串中提取字符,并带有可选的结束字符

具有重复字符的字符串之间的js正则表达式

Javascript正则表达式-获取带有方括号[]的所有字符串

perl 正则表达式与带有“+”字符的字符串匹配

如何删除除带有正则表达式的某些字符后的字符串?

带有特定字符串和任意数量的字符的正则表达式

带有特殊字符python的正则表达式负前瞻字符串

正则表达式问题(检查字符串是否有重复)

用Python中的正则表达式解析具有重复模式的字符串?

正则表达式以匹配具有重复模式的字符串

正则表达式:当字符串具有重复字母模式时匹配

如何使用带有正则表达式模式的 Javascript .replace() 限制字符串长度?

从Javascript上的字符串中提取带有正则表达式的Key:Value对assoc

长字符串的javascript正则表达式

复杂字符串的Javascript正则表达式

python中带有正则表达式比较的字符串在python中失败

带有字符串utf8的Java正则表达式

正则表达式-匹配带有:和空格的字符串

使用带有或语句的正则表达式分割字符串

C# 正则表达式不匹配带有点的字符串

修正带有文本和整数的字符串的正则表达式?

Java正则表达式处理带有嵌套数据的字符串对象

带有字符串标记化的Python正则表达式