Python:用双引号替换选项卡
问题描述:
嗨,我有线,我想用双引号替换选项卡。我为此写了脚本,但它不能按我的要求工作。 我行: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"
任何人有任何想法如何做到这一点?
答
注意:此答案假设(它是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)
你可以字符串逃脱引号或任何转义序列?如果不存在转义序列,则答案很清楚。 –
只是猜测 - 尝试:r'\ t'? – simplynail
@simplynail它不起作用 – Paul85