2016-07-04 78 views
0

我有這樣的遍佈線路一串代碼:如何使用正則表達式將某些內容附加到字符串?

plt.savefig('fig1.png') 
... 
plt.savefig('figblah.png') 

我想改變每一行是:

plt.savefig('fig1.png', dpi=300 ) 
... 
plt.savefig('figblah.png', dpi=300) 

我很雛用正則表達式,並一直在努力了而沒有成功。我在這裏瀏覽了很多問題,但只是不行。到目前爲止,我可以找到字符串:(?=savefig).*,但我卡在那裏。我想這個問題不知何故得到找到的值並追加',dpi = 300 字符串,但不知道如何做到這一點。

(我在jupyter筆記本的工作,如果有差別)

+0

@ baddger964 Jupyter自帶的發現並替換對話框,我現在正在玩它 – Luis

+0

@ baddger964:當然可以用正則表達式替換。 – Jan

回答

1

從你有限的例子中,它看起來像)替換, dpi=300)就足夠了。如果您需要捕獲savefig,類似(savefig\([^)]+)\)和替換$1, dpi=300)應該工作。

1

有多種方式,一用一正回顧後是:

(?<=plt\.savefig) # positive lookbehind for plt.savefig 
\(    # match an opening parenthesis 
([^)]+)   # capture anything not a) 
\)    # match a closing parenthesis 

這需要更換與(\1, dpi=300),見a demo on regex101.com

+0

Jupyter甚至找不到'(?<= plt \ .savefig)'或'(?<= plt.savefig)'。它可能是平臺依賴的? – Luis

0

看着this question後,我發現了捕捉組並找到了解決自己:

搜索:(savefig.*\)

替換爲:$1, dpi=300

相關問題