首页 > 解决方案 > JavaScript 正则表达 dotall 和全局标志

问题描述

我有一个这样的字符串:

#a
b

#c
d

我想把它分成几个部分,开头是#

#a
b

#c
d

我用正则表达式尝试过这个,但我发现我无法让它工作。

我认为以下方法可行:

var test='#a\nb\n#c\nd';
var re=/#.*?/gs;
var match=test.match(re);
alert(match.length);
alert(match);

也就是说,s修饰符通过换行符匹配,并且g修饰符拾取多个实例。懒惰的?量词应该阻止 the*走得太远。

但是,我发现当我使用 just 时s,它只会走到行尾。

显然,我对正则表达式或match()方法都没有了解。

顺便说一句,我知道这s只是 JavaScript 的最新补充,但我在 Electron 工作,它很容易获得。

标签: javascriptregex

解决方案


正则表达式对于这项工作来说太多了。使用内置字符串函数。

var str = `#a
b

#c
d`;

var chunks = str.split("\n\n");

console.log(chunks);


推荐阅读