2016-07-25 2 views
1

안녕하세요, 저는 큰 따옴표로 탭을 대체하고 싶습니다. 나는 그것을 위해 스크립트를 썼지 만, 내가 원하는대로 작동하지 않습니다. 내 라인 :파이썬 : 탭을 큰 따옴표로 바꾸기

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" 

하지만이 같은 무엇입니까 : 단어가 분리되어

Q3U962 Mus musculus MRMP-mouseOptimization "MRMP-mouse" 

탭 구분 기호로 오히려.

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

누구나 어떻게해야할까요?

+1

문자열에서 따옴표 나 이스케이프 시퀀스를 이스케이프 처리 할 수 ​​있습니까? 이스케이프 시퀀스가 ​​없으면 대답은 명확합니다. –

+0

그냥 추측 해보십시오 : r '\ t'? – simplynail

+0

@simplynail 작동하지 않습니다 – Paul85

답변

1

참고 :이 대답은 이스케이프 처리 된 따옴표/시퀀스가 ​​입력에 없다고 가정합니다 (confirmed by OP).

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

를 참조하십시오

당신은 " 이외의 ", 1+ 문자와 " 일치하는 간단한 "[^"]+" 정규식에 인용 된 문자열과 일치하고, 람다 내에서 내부 탭을 대체 할 수

관련 문제