我目前有這個正則表達式:this\.(.*)?\s[=,]\s
,但是我遇到了一個我無法修復的泡菜。貪婪和非貪婪的正則表達式
我試過下面的正則表達式,它可以工作,但它捕獲了我不想要的空間:this\.(.*)?(?<=\s)=|(?<!\s),
。我想要做的是匹配標識符名稱。我想要的一個例子和結果是這樣的:
this.""W = blah;
這將匹配""W
。上面的第二個正則表達式幾乎是完美的,但它也捕獲了第一組中=
之前的空間。有人能指出我正確的方向來解決這個問題嗎?
編輯:究其原因,通配符組中不是簡單地使用[^\s]
是,有時我能得到線這樣的:this. "$ = blah;
EDIT2:現在我有另一個問題。它不正確匹配param1.readBytes(this.=!3,0,param1.readInt());
。而不是匹配=!3
其匹配=!3,0
。有沒有辦法來解決這個問題?再次,我不能簡單地使用[^,]
,因爲可能有一個名稱應該與,3$
匹配的名稱,如param1.readBytes(this.,3$,0,param1.readInt());
。
用什麼語言寫你的程序? – 2013-05-08 11:30:55
所以如何判斷一個逗號是屬於this.identifier還是作爲函數參數的分隔符? – 2013-05-08 11:33:35
有沒有辦法在Regex中向後讀取?例如,從';'開始並返回,直到你通過兩個'','然後開始捕獲,直到找到'this.'?或者這是不可能的...... – jduncanator 2013-05-08 11:37:28