2013-11-22 3 views
-2

파이썬의 re.sub 함수를 사용하여 "organization"의 처음 두 글자 "or"를 "*"로 바꾸고 싶습니다. \b이 단어 경계를 나타내는 정규 표현식에 대한 책을 읽었으므로 패턴으로 \bor을 사용했습니다. 하지만 내가 가지고있어 :파이썬에서 단어 경계에 관한 정규식 패턴

>>> re.sub("\bor","*","organization") 
'organization' 
>>> 

나는 ganization을 가져야한다고 생각한다. 무엇이 문제이며, 내가 원하는 것을 얻기 위해 어떻게 패턴을 다시 사용해야합니까? 고맙습니다.

+0

사진을 사용하지 마십시오. 형식이 지정된 일반 텍스트로 입력하십시오. – Plasmarob

+0

RegEx를 http://regexpal.com에서 확인해보십시오. – rdodev

답변

2

당신은 여기 raw-string를 사용해야합니다 :

>>> '\b' 
'\x08' 
>>> 

는 또 다른 솔루션은 백 슬래시를 탈출하는 것입니다 :

>>> import re 
>>> re.sub(r"\bor", "*", "organization") 
'*ganization' 
>>> 

을 그렇지 않으면, 파이썬은 \x08로 번역됩니다 \b를 본다 :

>>> import re 
>>> re.sub("\\bor", "*", "organization") 
'*ganization' 
>>> 

또 다른 (그리고 아마도 가장 좋은) 솔루션 \b의 장소에서 ^을 사용하는 것입니다 :이 같은 ^는 "문자열의 시작 일치"를 의미하여 정규식에서

>>> import re 
>>> re.sub("^or", "*", "organization") 
'*ganization' 
>>> 

.

0

여기에 기본 제공 replace 기능을 사용하여이 작업을 수행 할 수있는 또 다른 방법이 있습니다.

string = "organization" 
print string.replace(string[:2], "*")