Regex 正则表达式-提取除方括号及其内容外的所有文本
我有一个变更日志,其版本号在方括号中,如下所示:Regex 正则表达式-提取除方括号及其内容外的所有文本,regex,parsing,text,changelog,Regex,Parsing,Text,Changelog,我有一个变更日志,其版本号在方括号中,如下所示: .*(\[.*?\]).* #[0.3.0]-2016-12-13 -修复这是一个示例修复 -功能部件示例功能部件 我只想提取版本号,这样我就剩下了: [未发布] [0.3.0] [0.2.4] [0.2.3] 理想情况下,我只想提取方括号中不是“未发布”的第一个值,因此我得到了最新版本号0.3.0,尽管我不确定这在正则表达式中是否可行 有人能帮忙吗?谢谢:)您可以像这样使用正则表达式: .*(\[.*?\]).* 使用替换字符串:\1 顺便
.*(\[.*?\]).*
#[0.3.0]-2016-12-13
-修复这是一个示例修复
-功能部件示例功能部件
我只想提取版本号,这样我就剩下了:
[未发布]
[0.3.0]
[0.2.4]
[0.2.3]
理想情况下,我只想提取方括号中不是“未发布”的第一个值,因此我得到了最新版本号0.3.0,尽管我不确定这在正则表达式中是否可行
有人能帮忙吗?谢谢:)您可以像这样使用正则表达式:
.*(\[.*?\]).*
使用替换字符串:\1
顺便说一句,如果要删除所有其他文本,则可以使用:
.*(\[.*?\]).*|*
更新:如果您想在版本列表中转换变更日志,我可以提出以下正则表达式:
.*(\[.*?\])[\s\S]*?(^$|\z)
编辑(最初误读):
替换
[\s\S]*?(\[[\d.]+])[\s\S]*
与
.您使用的是什么工具/语言?到目前为止您尝试了什么,您的尝试不符合您的需要吗?
(\[.*?\])
试试这个。我很困惑-您的标题是“全部删除…”,但您的问题是“仅提取…”。移除和提取是两件不同的事情。是哪一个?谢谢@ClasG我已经更新了我的标题:)[^[\r\n]+(?:\r[^[\r\n]+)*\r?(\[^]]*\])
应该是你上一个正则表达式的性能改进。[^[\r\n]+\[^]*\])
之前的一个。@SebastianProske,很高兴知道。谢谢你的评论。