我試圖讓功能DoDialogwizardWithArguments這是一個字符串中使用正則表達式:正則表達式,在字符串中刪除功能
字符串:
var a = 1 + 2;DoDialogWizardWithArguments('CopyGroup', '&act=enviarcliente', 96487, (Q.getBody().$.innerWidth()/4)*3, Q.getBody().$.innerHeight(), new Function("if(localStorage.getItem('atualizaPgsParaCli')){{Q.window.close();Q.window.proxy.reload();}}localStorage.removeItem('atualizaPgsParaCli');return true;"), false);p = q.getBOdy();
實際正則表達式(模式):
DoDialogWizardWithArguments\((.*\$?)\)
結果預計:
DoDialogWizardWithArguments('CopyGroup', '&act=enviarcliente', 96487, (Q.getBody().$.innerWidth()/4)*3, Q.getBody().$.innerHeight(), new Function("if(localStorage.getItem('atualizaPgsParaCli')){{Q.window.close();Q.window.proxy.reload();}}localStorage.removeItem('atualizaPgsParaCli');return true;"), false)
問題:
如果還有另一個圓括號「)」,它不是DoDialogWizardWithArguments函數的圓括號,正則表達式也得到了這個。
我怎樣才能得到他的打開和關閉括號的功能。
如果正則表達式不可能,最好的選擇是什麼?
例子正則表達式鏈接:https://regex101.com/r/kP2bQ4/1
我不知道,如果你要能夠匹配這個使用正則表達式,因爲似乎沒有什麼辦法,以表明它結束的時候(至少不會,除非你設置你的結束條件匹配,直到它看到一個'p = q.getBOdy();',我不知道它會爲你工作 –
是的,它可以是很多功能之後的事情,用戶可以創建命令,我只需要提取函數 – fdfey
你想掃描一個字符串並得到輸出:DoDialogWizardWithArguments(「stuff」,「stuff」,.. ...); 如果是這樣,就這樣做: 「DoDialogWizardWithArguments([^,] *,[^,] *,[^,] *,([^,] *),。+);」這樣可以檢測到您的句子,但不是如果它h作爲有效的輸入。你想檢查函數是('this','this',1234,(something),true | false); ? 如果你只是想獲得DoDialogWizardWithArguments(...);使用我評論的內容。 –