2016-12-14 45 views
1

我有了这样的方括号中的版本号更新日志:正则表达式 - 提取除方括号中的所有文本,并对其内容

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

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

任何人都可以帮忙吗?谢谢:)

+1

你使用什么工具/语言? – Bohemian

+2

到目前为止您尝试了什么,您的尝试不符合您的需求? – Welbog

+0

'(\ [。*?\])'试试这个。 – MYGz

回答

2

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

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

随着替换字符串:\1

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

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

Working demo

更新:如果你想变换更改日志中的版本的列表,我能想出这个表达式:

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

Working demo

+0

多数民众赞成在完美!这么快,谢谢Federico :) – alidrongo

+0

'[^ [\ r \ n] +(?:\ R [^ [\ r \ n] +)* \ R?|(\ [[^]] * \]) '应该是你上一次正则表达式的性能改进。 '[^ [\ r \ n] + |(\ [[^]] * \])'为前一个。 –

+0

@SebastianProske,很高兴知道。感谢您的评论。 –

相关问题