正则表达式 - 提取除方括号及其内容之外的所有文本

时间:2016-12-14 15:05:27

标签: regex parsing text changelog

我有一个更改日志,其方括号中的版本号如下:

## [0.3.0] - 2016-12-13 - FIX This is an example fix - FEATURE An example feature

我想提取版本号,以便我留下:

[Unreleased] [0.3.0] [0.2.4] [0.2.3]

理想情况下,我想只提取方括号中的第一个值,而不是“未发布的”#39;所以我得到的最新版本号为0.3.0,虽然我不确定这是否可以在正则表达式中使用。

有人可以帮忙吗?谢谢:))

2 个答案:

答案 0 :(得分:2)

你可以使用这样的正则表达式:

.*(\[.*?\]).*

使用替换字符串:\1

顺便说一句,如果你想删除所有其他文本,那么你可以使用:

.*(\[.*?\]).*|*

<强> Working demo

更新:如果你想在版本列表中转换更改日志,我可以想出这个正则表达式:

.*(\[.*?\])[\s\S]*?(^$|\z)

<强> Working demo

答案 1 :(得分:0)

编辑(首先误读):

替换

[\s\S]*?(\[[\d.]+])[\s\S]*

\1

Check out this example at regex101