2017-12-03 3 views
0

re.sub_unless 함수가 있습니까? 나는 하나를 찾을 수없는 것 같습니다.Python Regex Replace without

그래서 파이썬에서 regex를 사용하여 (HTML 문서에서) 구두점을 포맷하려고합니다. 단락 끝에 문장 부호 앞에 불필요한 공백을 제거 할 때 이모티콘 문제가 계속 발생합니다. 그래서, 예를 들어

"text - </p>" 

"text .) </p>" 

"text-</p>" 

"text.)</p>", 

하지만

에 렌더링한다
"text :)</p>" 

일치하는 정규 표현식을 작성

"text:)</p>". 

에 렌더링 안

" [emoticon]</p>" 

어렵지 않을 것입니다, 일부 re.sub_unless가 있었다, 그래서 만약 (패턴, unless_pattern, 텍스트) 기능, 그건 내 요구에 완벽하게 될 것입니다. 그것은 re.sub_unless이 아니지만, 당신은 다음을 수행 할 수

+0

네가티브 미리보기를 사용할 수 있습니다. – BrenBarn

+0

부품 중 하나를 캡처하는 교대 기반 정규 표현식을 작성해야합니다. 그런 다음 콜백 메소드/lambda 표현식을 사용하여 대체 로직을 구현하십시오. –

답변

0

, 당신은 당신이 다음을 할 수있는 하나 개 이상의 이모티콘이있는 경우

import re 
    # text = "text :)</p>" 
    text = "text .) </p>" 
    result = text 
    if ":)" not in text: 
     result = re.sub('\s*', "", text) 

,

import re 
# text = "text :)</p>" 
text = "text .) </p>" 
result = "" 

emojis = [":)", ":("] 

for emoji in emojis: 
    if emoji in text: 
    result = text 
    break 
    result = re.sub('\s*', "", text) 


print(result) 

하지 가장 performat 코드를하지만 일을 않습니다.