javascript - 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 工作,它很容易获得。
解决方案
正则表达式对于这项工作来说太多了。使用内置字符串函数。
var str = `#a
b
#c
d`;
var chunks = str.split("\n\n");
console.log(chunks);
推荐阅读
- magento - Magento 2 更改每个商店视图的价格
- c++ - 使用双包装类进行位操作(C++、clang)修复性能下降
- angular - 无法访问角材料内的元素
- r - 计算昨天收盘价的每日百分比变化并将其应用于多个代码的函数
- homebrew - Homebrew 的公式依赖性
- python - 如何使用 Python 编辑 XML 文件
- php - Botman PHP 7.2.4 opcache
- javascript - 如何在 setInterval (JQuery) 之后阻止 iframe 不断重新加载
- python - 如何为通过 for 循环 Tkinter 生成的每个小部件分配名称
- python - 在Python中计算模板对象匹配对象在图像中的准确性的方法?