正则表达式将整个列表捕获为一个项目 - javascript

问题描述 投票:1回答:1

我正在使用字符串文本的js过滤器,我想使用正则表达式捕获列表项的整个列表,所以我可以计算它们并迭代它们。

请看看我想要实现的目标:https://regex101.com/r/Jd3JYW/2/

我知道如何使用这个正则表达式(^\*[^\*](.*)$)/gm分别捕获线,但我需要捕获整个列表,所以我可以区分两个列表,所以我可以让它们从n.1开始。

我期望以下代码工作((^\*[^\*](.*)$)+)/gm我认为这将捕获第一项(因为它适用于单独的行)以及任何后续直到patern被打破。但是它不起作用,我仍然获得了单独的线路。你有什么想法的人,如何捕获整个列表?谢谢。

javascript regex
1个回答
2
投票

您使用$来匹配行结尾,但它是零宽度断言。你应该使用一些消费模式来匹配行结尾,比如[\r\n]+

/^(?:\*[^*\n].*(?:[\r\n]+|$))+/gm

regex demo

细节

  • ^ - 开始一条线
  • (?:^\*[^*\n].*(?:[\r\n]+|$))+ - 1个或多个序列: \* - * char [^*\n] - LF和*之外的其他字符 .* - 除了换行符之外的任何0 +字符,尽可能多 (?:[\r\n]+|$) - 1 + LF或CR符号或行尾(以匹配最后一行)。
© www.soinside.com 2019 - 2024. All rights reserved.