2017-12-23 28 views
1

.replace() 또는 그 종류의 문자를 사용하여 긴 텍스트에서 원하지 않는 문자를 제거하려면 어떻게합니까? 텍스트에서 쫓아 내고 싶은 기호는 ',',{,},[,] (쉼표는 포함되지 않음)입니다. 기존 텍스트는 다음과 같습니다긴 문자열에서 원하지 않는 문자를 제거 할 수 없습니다.

{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018} 
나는 아래의 코드를 시도

: 내가 가진

content=''' 
{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018} 
''' 
print(content.replace("'","")) 

출력 : [내가 .replace()처럼 계속 경우 BTW (교체) 다른 기호입니다. 그 다음 그것은 작동하지만 난은 가능하면 난 내가 .replace("',{,},[,]","") 같은 기능을 대체 사용할 수 있으면 좋겠다]

{SearchText:319 lizzie,ResultList:[{PropertyQuickRefID:R016698,PropertyType:Real}],TaxYear:2018} 

단일 인스턴스에서 동일한 작업을 수행하고 싶습니다. 그러나 나는 regex에서 파생 된 해결책을 찾은 것이 아닙니다. 문자열 조작은 내가 예상 한 것입니다. 미리 감사드립니다.

+0

정규식 사용을 고려 했습니까? –

+0

당신의 코멘트에 대해 Mad Physicist에게 감사드립니다. 사실, 나는 어떤 해결책을 정규식에서 파생 된 후 아니었다. – SIM

답변

4
content=r"{'SearchText':'319 lizzie','ResultList':[{'PropertyQuickRefID':'R016698','PropertyType':'Real'}],'TaxYear':2018}" 

igno = "{}[]''´´``''" 
cleaned = ''.join([x for x in content if x not in igno]) 

print(cleaned) 

PyFiddle 3.6 : 2.7

SearchText:319 lizzie,ResultList:PropertyQuickRefID:R016698,PropertyType:Real,TaxYear:2018 

는 I 오류 얻을 :

Non-ASCII character '\xc2' in file main.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

느릅 소스 코드 # This Python file uses the following encoding: utf-8 번째 줄을 추가로 개선 될 수

- 다른 한 후, 동일한 출력을 제공 .

+0

예, 트릭입니다. Btw, 여러 문자가있는'.replace()'함수를 사용하여 동일한 작업을 수행 할 수 있습니까? 잠시 후 받아 들일거야. – SIM

+0

@topto 또한 string.transform을 사용할 수 있습니다 - https://stackoverflow.com/a/3939381/7505395를 참조하십시오. 그러나 유니 코드를 사용하면 피타 (pita) 인 것처럼 보입니다. 그래서 목록 작성에 충실합니다.'망치를 가진 사람에게 , 모든 문제는 못처럼 보입니다. ') –