我有一個看起來像這樣的數據:[*]VIM/Perl的正則表達式的標籤匹配問題
[Shift]);[Ctrl][Ctrl+S][Left mouse-click][Backspace][Ctrl]
我想找到所有標籤這個字鼠標在其中。考慮到非貪婪符一致,我想這在Vim的:\[.\{-}mouse.\{-}\]
,但取得這樣的結果,
[Shift]);[Ctrl][Ctrl+S][Left mouse-click]
而不僅僅是需要,
[Left mouse-click]
任何想法?最終,我還需要Perl語法的這種模式,所以如果任何人有一個解決方案在Perl中,也將不勝感激。
@Rob肯尼迪 - 你']'不正確地轉義。 – manojlds 2011-05-30 05:10:56
他們都很好,@Manojlds。你是否不知道當'[^'後面緊接着']','''是從字面上而不是作爲字符集的結尾?查看你自己:'echo'[Shift]); [Ctrl] [Ctrl + S] [鼠標左鍵單擊] [Backspace] [Ctrl]'| perl -nE'm /(\ [[^]] * mouse [^ [] * \])/;說$ 1''。引用[perlrecharclass](http://perldoc.perl.org/perlrecharclass.html):「如果'''是括號字符類的第一個字符(或第二個字符,如果第一個字符是插入字符),它會不代表班級的結束(因爲你不能有空班)......「 – 2011-05-30 06:10:45
感謝您的解釋。它是特定於Perl嗎?不符合這裏 - http://regexr.com?2tsej – manojlds 2011-05-30 06:18:06