Hey Stack Overflow成员, 我正在尝试解析此文本并获得两个单独的匹配,无序的markdown列表块。问题是我无法找到匹配它们的方法。 可能还有文字。
我正在使用 JavaScript风格的正则表达式。
这就是我一直在尝试的,完整示例:Regex101
(\*|\t\*|\s+\*).*
列表:
* Item 1
* Item 2
* Item 2a
* Item 2b
* Item 1
* Item 2
* Item 2a
* Item 2b
提前感谢您的帮助。
答案 0 :(得分:1)
[\s\S]
会使JavaScript成为多线,因为点.
不会做多线。
[\s\S]
将搜索包含换行符的每个空格和非空白字符。
var match = document.querySelector("pre").textContent.match(/(\*|\t\*|\s+\*)[\s\S]*?\n\n/g);
console.log(match);

<pre>
When there is text preceding the block
* Item 1
* Item 2
* Item 2a
* Item 2b
* Item 1
* Item 2
* Item 2a
* Item 2b
When there is more text in the block
</pre>
&#13;
另一种方法。对g
使用全局标记match
。
var match = document.querySelector("pre").textContent.match(/(\*|\t\*|\s+\*).*/g);
//raw match
console.log(match);
//with trim
match_trim = match.map(function(element){
return (element.trim());
});
console.log(match_trim);
//with join
match_join = match.join("");
console.log(match_join);
&#13;
<pre>
* Item 1
* Item 2
* Item 2a
* Item 2b
* Item 1
* Item 2
* Item 2a
* Item 2b
</pre>
&#13;