2014-01-16 2 views
0

문자열에서 단어를 찾고 역순으로 바꾸려고합니다. 따라서 This 17이 있으면 sihT 17을 보내고 싶습니다.문자열을 역순으로 검색하고 바꾸기

하지만 난 당신이 re.sub 내부 기능을 사용할 수 있습니다 re.sub()

import re 

pat_word = re.compile("[a-zA-Z]+") 
input = raw_input ("Input: ") 

match = pat_word.findall(input) 
if match: 
    s = re.sub(pat_word, "reverse", input) 
    print s 

답변

2

에 문자열 자체를 반대하는 방법을 모른다 : 단순히

s = re.sub(pat_word, lambda m:m.group(0)[::-1], input) 

또는 :

s = pat_word.sub(lambda m:m.group(0)[::-1], input) 

help(re.sub) :

부 (패턴 REPL 문자열 카운트 = 0, 플래그 = 0)

되돌 여분 REPL하여 문자열 패턴의 가장 왼쪽 겹치지 어커런스를 교체함으로써 얻어진 문자열. repl는 문자열 또는 호출 가능 일 수 있습니다. 문자열에서 백 슬래시가 이스케이프 처리되면 처리됩니다. 호출 가능하면 일치 객체가 전달되고 사용할 대체 문자열을 반환해야합니다. input 그래서 변수 이름으로 사용하지 않는, 파이썬 내장 함수입니다

참고.

+0

큰 설명을 부탁드립니다. 나는 많이 배웠다! – Saphire

+0

@Saphire 정규 표현식에 그룹이 없습니다. 기본적으로 [group (0)] (http://docs.python.org/2/library/re.html#re.MatchObject.group)는 전체를 반환합니다. 시합. BTW에서는 간단히'pat_word.sub (lambda m : m.group (0) [:: - 1], input)'을 사용할 수 있습니다. –

관련 문제