2016-07-25 72 views
1

嗨,我有線,我想用雙引號替換選項卡。我爲此寫了腳本,但它不能按我的要求工作。 我行:Python:用雙引號替換選項卡

Q3U962 Mus musculus MRMP-mouse Optimization "MRMP-mouse " 

我的腳本:

for repline in reppepdata: 
    findtorep=re.findall(r"['\"](.*?)['\"]", repline) 
    if len(findtorep) >0: 
     for repitem in findtorep: 
      repchar =repitem 
      repchar=repchar.replace('\t', '') 

我的輸出應該是:

Q3U962 Mus musculus MRMP-mouse Optimization "MRMP-mouse" 

但我得到這樣的:

​​

詞分開通過製表符分隔符h ERE。

Q3U962\tMus musculus\tMRMP-mouse\tOptimization \t"MRMP-mouse\t" 

任何人有任何想法如何做到這一點?

+1

你可以字符串逃脫引號或任何轉義序列?如果不存在轉義序列,則答案很清楚。 –

+0

只是猜測 - 嘗試:r'\ t'? – simplynail

+0

@simplynail它不起作用 – Paul85

回答

1

注意:此答案假設(它是confirmed by OP)在輸入中沒有轉義的引號/序列。

您可以將引用字符串用一個簡單的正則表達式"[^"]+"一個",1 +字符以外""匹配匹配,和一個lambda內更換的卡口:

import re 
s = 'Q3U96 Mus musculu MRMP-mous Optimizatio "MRMP-mouse "' 
res = re.sub(r'"[^"]+"', lambda m: m.group(0).replace("\t", ""), s) 
print(res) 

Python demo