Vim / Perl正则表达式标记匹配问题

时间:2011-05-30 04:25:35

标签: regex perl vim

我的数据如下:

[Shift]);[Ctrl][Ctrl+S][Left mouse-click][Backspace][Ctrl]

我想找到所有 [。*] 标签,其中包含鼠标字样。记住非贪婪的说明符,我在 Vim \[.\{-}mouse.\{-}\]中尝试了这个,但是这产生了这个结果,

[Shift]);[Ctrl][Ctrl+S][Left mouse-click]

而不仅仅是想要的,

[Left mouse-click]

有什么想法吗?最终我在Perl语法中也需要这种模式,所以如果有人在Perl中有一个解决方案,也会受到赞赏。

2 个答案:

答案 0 :(得分:4)

\[[^]]*mouse[^[]*\]

也就是说,匹配一个文字左括号,然后是任何数字的非关闭括号的字符,然后是“鼠标”,然后是任意数量的非开括号,最后是一个文字的右括号。 Perl应该是一样的。

答案 1 :(得分:3)

您可以使用以下正则表达式:

\[[^\]]*mouse.*?\]