2017-01-31 76 views
0

嘗試爲此找到答案,但無法準確找到要查找的內容。我試圖創建一個python腳本,它將在文本文件中查找字符串連接,並將它們轉換爲單個字符串。python查找字符串連接並用實際字符串替換它們

例如,文件將包含:

"h" + "e" + "l" + "l" + "o" + world; 

的,我想有一個腳本這變成:

"hello" + world; 

如果這樣的事情是可行的,我能得到一些關於如何編寫這樣的腳本的指針?

+2

爲什麼你需要這樣做?如果你想優化某種代碼,那麼語言已經爲你做了。 (Python有。) – kindall

+3

爲什麼要麻煩?無論如何,CPython窺孔優化器會爲您做到這一點。搜索「常量摺疊」 – wim

+3

如果你的問題是__這是可能的嗎__答案是__of coarse__ –

回答

0

找到後可以嘗試刪除" + "。表面上,它應該只能在串聯的兩個字符串之間找到。下面的正則表達式將刪除以下序列:雙引號,0或1個空格字符,加號,0或1個空格字符以及其他雙引號。

import re 

with open('filename.txt', 'r') as fp: 
    cleaned_text = [re.sub(r'"\W?\+\W?"', '',line) for line in fp] 

# example 
> re.sub(r'"\W?\+\W?"', '','"h" + "e" + "l" + "l" + "o" + world;') 
# "hello" world; 
+1

沒有上下文的搜索和替換是不安全的。 'a +「+」+ b' – ephemient

+0

這完全適用於上面指定的示例,這正是我所需要的。非常感激。 – unbekant