0
我目前正在開發/更新,使用了很多VIM的正則表達式來在Python的匹配類/方法/函數的Vim的正則表達式匹配
我的出發點是重新一個VIM插件類,方法或函數-use我能找到,在這種情況下,這是我一直使用的是什麼:
匹配一類
"^\\s.*class\\s\\+[a-zA-Z0-9_]\\+"
"\ . "\\s*\\((\\([a-zA-Z0-9_,. \\t\\n]\\)*)\\)\\=\\s*:"
匹配一個方法
"^\\s*.def\\s\\+[a-zA-Z0-9_]\\+\\s*(\\s*self\\_[^:#]*)\\s*:"
匹配一個功能
"^\\s*def\\s\\+[a-zA-Z0-9_]\\+\\s*(\\_[^:#]*)\\s*:"
然而,上述證明的方式來嚴格和在某些情況下不匹配(例如如果你啓動一個方法並在「(」)之後的新行中繼續。
多的辯論之後所以,我決定放寬我的正則表達式,這就是我目前正在使用:
類:
'\v^(.*class)'
方法:
'\v^(.*def)&(.*self)'
功能:
'\v^(.*def)&(.*self)@!'
迄今爲止這麼好,但我認爲我失去了正則表達式的平衡:現在是寬鬆的方式。
的問題是:
「?莫非你的廣告位的正則表達式的專業知識,我的正則表達式寬鬆,使他們匹配好一點,但不要變得過於嚴格」
獎勵積分如果保持很神奇標誌在你的答案!
類/方法/功能? – Jay 2011-01-13 15:51:27
'有些人在遇到問題時想'我知道,我會用正則表達式'。「現在他們有兩個問題。' (傑米Zawinski)。你確定這是你想要做的嗎? C/Java/C++ /的語法不適用於正則表達式匹配。這個是來做什麼的?我們可能會提出一些替代方法。 – DrAl 2011-01-13 16:07:06