Javascript多行正则表达式先行或字符串的其余部分/字符串的最末尾

标签 javascript regex

我无法捕获以下 Markdown 文本中的所有组:

### AAA
text for group AAA

### BBB
text for group BBB

### CCC
text for group CCC

我当前使用的正则表达式是:

/(^###\s[\s\S]*?(?=^###\s))/gm

它使用正向前瞻来知道何时切断每个组。但结果是,它总是无法捕获最后一组(没有前瞻匹配)。

换行符不会一致,所以我不能依赖这些,并且 javascript 正则表达式没有\Z (我相信在其他语言中它是“字符串的结尾”,而不是 $是行尾)。

如何捕获此处的所有组?

最佳答案

您可以使用负向前瞻而不是正向前瞻:组的内容将是不在 ### 字符串开头的每个字符。

^###\s((?!###)[\s\S])*

试试 regex101 !

关于Javascript多行正则表达式先行或字符串的其余部分/字符串的最末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859313/

相关文章:

javascript - Codemirror:自己的模块关键字

regex - while、数组和正则表达式的组合

java正则表达式提取直到特殊字符

javascript - 一次性弹出框 (SweetAlert2)

正则表达式 - 将数字与常量进行比较

javascript - 如何使用 ' 将字符串转换为标准字符

javascript - AngularJS添加基于下拉值变化的选择

regex - 将 URL 从 http ://example. com/blog/重写为 http ://blog. example.com/

javascript - 我真的可以用 javascript 调整图像大小吗?

javascript - Angular.js 深度对象解析