我想從Ruby中的Fortran代碼中提取符號。符號將具有以下模式(注:變量類型和屬性部分已經被過濾掉了):如何使用正則表達式匹配前面沒有「=」的單詞?
a = b, c(2) ! Match result should be "a" and "c"
d(3) = [1,2, & ! Match result should be "d"
3]
,我已經嘗試了正則表達式是((?<!=)\w+(?![^\[]*\]+)(?=(|,|\(|$)))
與lookaround
東西。但由於lookbehind
的限制,我無法匹配「= *」排除b
。
我用Rubular進行測試。爲了您的方便,請參閱here。
在此先感謝!
沒有辦法僞造可變長度向後看的正則表達式的味道,不支持它。 – Tomalak 2013-04-10 07:29:42
@Tomalak:是的,我對這個收縮感到失望。正如「爆炸藥丸」所表明的那樣,我們可以先對這些字符串進行預處理。 – 2013-04-10 07:32:48
Ruby不支持的其他有用的東西是佔有量詞。 – Tomalak 2013-04-10 07:45:15