2012-05-16 175 views
-1

早安,查找和蟒蛇代替

我是個在python初學者,我想有一點幫助:

我就會給你個例:

我在文件中得到了:

blabla add_signed_123_548 blabla 
blabla add_unsigned_77_10 blabla 

,我想:

blabla adder blabla 
blabla adder blabla 

我必須找到它們,然後我必須用加法器替換它們。 我沒有得到關於我隨機給出的數字的信息。 但我不知道如何挑選整個字符串?

我想查找'add_',那麼我想替換adder_signed_123_548是否可行?

我希望它很清楚。 THX的幫助:)

+2

嗚嗚,我不清楚,至少:S – jlengrand

+0

您是否在尋找某種正則表達式? – jlengrand

回答

7

這將替換與add_adder開始的所有單詞:

>>> import re 
>>> s = """foo bar add_signed_123_548 foo bar 
... Baddest add_unsigned_77_10 additional""" 
>>> print(re.sub(r"\badd_\w+", "adder", s)) 
foo bar adder foo bar 
Baddest adder additional 

\b字邊界錨可以確保add_在一個單詞的開始只有匹配。

+0

實際上,有很多隨機數,畢竟add_signed,我無法檢查我的所有文件, – user1398179

+0

@ user1398179:是的,正則表達式'\ w +'匹配任意數量的字母數字字符。輸出是你想要的方式嗎? –

+0

啊oki我不知道:o 是的,謝謝蒂姆:) – user1398179

0

你可以把你輸入的字符串,並把它分解像'add_signed_123_548'.split('_')下劃線,這將給你所有的組成部件['add', 'signed', '123', '548']的列表,並從那裏你可以處理但它需要。

1

沒有正則表達式的答案:

>>> value = "blabla add_signed_123_548 blabla" 
>>> print ' '.join((word, 'adder')[word.startswith('add_')] for word in value.split()) 
blabla adder blabla