我正在尝试解析这段文本。第一步是抓住[feat]
和换行符之间的所有内容。第二步甚至可以更好地捕获所有壮举并按显示的日期将它们分组。文本存储在变量中。这是一个示例:
## [1.0.0] - 2019-06-28
[feat] - Complete generate pdf refactor
## [1.0.1] - 2019-07-04
[fix] Fixed generate address
[fix] Fixed warrant print
[fix] Fixed note component
## [1.0.2] - 2019-07-05
[feat] Add views as response for production
[feat] Add component
[fix] Fixed warrant
我尝试使用[(feat])(.*)/n
和str.match
,但我缺少一些东西。
我想要得到的结果是: [“固定的生成地址”,“添加视图作为生产响应”,“添加组件”]
甚至更好地按日期分组
答案 0 :(得分:0)
您可以使用
/\[feat]\W*(.+)/g
请参见regex demo。注意:如果[feat]
与您需要提取的数据之间只有空格和连字符,则可以将模式精确化为
/\[feat][\s-]*(.+)/g
^^^^^^
请参见this regex demo和regex graph:
详细信息
\[feat]
-一个[feat]
子字符串\W*
-0个或更多非单词字符[\s-]*
-0个或多个空格或/和连字符(.+)
-第1组:除换行符以外的任何0个或多个字符。JS演示:
var s = "## [1.0.0] - 2019-06-28\n[feat] - Complete generate pdf refactor\n## [1.0.1] - 2019-07-04\n[fix] Fixed generate address\n\n[fix] Fixed warrant print\n\n[fix] Fixed note component\n\n## [1.0.2] - 2019-07-05\n[feat] Add views as response for production\n\n[feat] Add component \n\n[fix] Fixed warrant";
var rx = /\[feat]\W*(.+)/g, m, res=[];
while (m=rx.exec(s)) {
res.push(m[1]);
}
console.log(res);