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

Regex - Extract all text except square brackets and their contents

我有一个更新日志,其中的版本号位于方括号中,如下所示:

## [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]

理想情况下,我只想提取方括号中不是 'Unreleased' 的第一个值,所以我得到了最新版本号 0.3.0,尽管我不确定这在正则表达式中是否可行。

有人能帮忙吗?谢谢:)

您可以像这样使用正则表达式:

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

用替换字符串:</code></p> <p>顺便说一句,如果你想删除所有其他文本,那么你可以使用:</p> <pre><code>.*(\[.*?\]).*|*

Working demo

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

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

Working demo

编辑(一开始看错了):

替换

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


Check out this example at regex101.