在指定字符后使用RegEx匹配序列

时间:2012-05-26 18:54:11

标签: regex

初始字符串为 [image:salmon-v5-09-14-2011.jpg]

我想捕获文本“salmon-v5-09-14-2011.jpg”并使用GSkinner's RegEx Tool

我最接近我想要的输出是使用此RegEx:

:([\w+.-]+)

问题是此序列包含冒号,输出变为

:salmon-v5-09-14-2011.jpg

如何在没有冒号的情况下捕获所需的输出。谢谢你的帮助!

3 个答案:

答案 0 :(得分:33)

使用后视:

(?<=:)[\w+.-]+

后视(编码为(?<=someregex))是零宽度匹配,因此它断言但不捕获匹配。

此外,您的正则表达式可以简化为:

(?<=:)[^\]]+

只是抓取(但不包括):]

之间的任何内容

答案 1 :(得分:5)

如果你总是以这种格式查看字符串,我会使用这种模式:

(?<=\[image:)[^\]]+

这看起来是[image:,然后匹配到结束]

答案 2 :(得分:1)

您拥有正确的正则表达式,只有您正在使用的工具突出显示整个匹配而不仅仅是您的捕获组。将鼠标悬停在匹配项上,然后查看“组1”实际上是什么。

如果你想要一个更强大的正则表达式,你可以尝试:([^\]]+),这将允许]以外的任何字符出现在文件名部分。