2012-06-24 25 views
0

我正在使用AutoKey,我想弄清楚如何在字符串內成功執行正則表達式模式替換。作爲測試,我救了一個腳本,看起來像這樣:AutoKey Python - 我如何做正則表達式替換

NewStr := RegExReplace("abc123123", "123$", "xyz") 
keyboard.send_keys(NewStr) 

腳本只返回一個空間,而不是正則表達式修改字符串我的預期。

我是python腳本編寫新手,我從AutoHotKey教程中得到了這段代碼,它與AutoKey不同,但AutoKey可能是在AutoHotKey之後建模的,所以我想我會試試它。

我一直存在的問題是找到專門用於AutoKey的正則表達式示例。我會很感激任何工具建議,這將使我能夠更有效地編寫能夠特別適用於AutoKey的python腳本。在此之前,我從來不需要學習python,但由於AutoKey將它用於腳本引擎,我現在願意學習它。

+0

你想從'abc123123'完全替換你想要的東西嗎? –

+0

AutoKey使用Python語法;它不像AutoHotkey的類似。 – echristopherson

回答

2

.sub(replacement, string[, count=0])

返回由替換替換替換串中的RE的最左邊的非重疊出現所獲得的字符串。如果未找到該模式,則字符串將保持不變。

可選參數count是要替換的模式發生次數的最大值; count必須是一個非負整數。默認值0意味着替換所有的事件。

下面是使用sub()方法的一個簡單示例。它用顏色字代替顏色名稱:

>>> p = re.compile('(blue|white|red)') 
>>> p.sub('colour', 'blue socks and red shoes') 
'colour socks and colour shoes' 
>>> p.sub('colour', 'blue socks and red shoes', count=1) 
'colour socks and red shoes'