2012-06-15 4 views
1

검색 구문에 사용 된 모든 특수 문자와 안전하지 않은 문자를 Google URL에 삽입하기에 적합한 문자열로 대체하려면 문자열 바꾸기를하고 싶습니다.우아한 문자열 방법 (더 Pythonic하는 방법)

.replace 또는 re.sub의 여러 인스턴스를 사용할 수 있지만 비효율적 인 것 같습니다. 이것을하는 더 빠르고 더 Pythonic 방법 있는가? 최근 코드를보다 깨끗하고 효율적으로 만들려고 시도했기 때문에 초급에서 중급으로 옮겨 가고 있다고 생각합니다.

답변

7

대신 교체 스스로를하고, 나는 %xx 이스케이프 특수 문자로 변환하여 URL 안전 문자열을 반환 urllib.quote()을 사용하는 것이 좋습니다 것입니다.

이점은 urllib.unquote()을 사용하여 URL 안전 버전에서 쉽게 원래 문자열을 얻을 수 있다는 것입니다. 코드를 직접 작성하지 않아도됩니다.

+0

붐. 선생님, 승자입니다. –

+0

@AndrewAlexander 다음은 그의 대답을 받아 들여야합니다. D –

+0

예, 죄송합니다! 나는 지금 가지고있다. –

1

하나의 대안이다 string.translate

예컨대

>>> string.translate('ds..ad$ds#a', None, '.,@#$') 
'dsaddsa' 
0

또 다른 대안은 re.sub을 사용하는 것입니다 (자세한 내용은 regex documentation 참조). 예를 들어

: 당신은 당신이 추가/특수 문자를 제거 할 수 있습니다 의미 빈 문자열로 교체 할 조짐을 지정할 수 있습니다

# re.sub(pattern, replacement, target_string) 
>>> re.sub("@|#|\$", "" , '[email protected]#$asdf') 
'asdfasdf' 

참고. 그러나 정규식 패턴에 대한 지식이 필요합니다.

관련 문제