programing

python .replace() regex

newsource 2022. 12. 26. 20:27

python .replace() regex

오늘 끝나고 다 잡으려고요.'</html>'태그를 붙여서 삭제해도, 제 코드는 아무것도 하지 않는 것 같습니다.한다.replace()regex를 지원하지 않습니까?

z.write(article.replace('</html>.+', '</html>'))

아니요. Python의 정규 표현식은 모듈에서 처리합니다.

article = re.sub(r'(?is)</html>.+', '</html>', article)

일반적으로:

text_after = re.sub(regex_search_term, regex_replacement, text_before)

정규 표현을 사용하여 텍스트를 바꾸려면 re.sub 함수를 사용합니다.

sub(패턴, 복제, 문자열[, 카운트, 플래그])

비래핑 인스턴스(instance가 됩니다.pattern로서 통달된 본문에 의하면string예를 들어 특정 그룹 캡처에 대한 정보를 추출하기 위해 일치를 분석해야 할 경우 함수를 에 전달할 수 있습니다.string인수. 자세한 내용은 여기를 참조하십시오.

>>> import re
>>> re.sub(r'a', 'b', 'banana')
'bbnbnb'

>>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435')
'/andre/{id}/abobora/{id}'

를 사용할 수 있습니다.re정규식을 위한 모듈이지만 정규식을 원하는 만큼 과잉 죽일 수 있습니다.이런 걸 해볼까?

z.write(article[:article.index("</html>") + 7]

이는 regex 기반 솔루션보다 훨씬 깨끗하고 훨씬 빠릅니다.

이 특별한 경우,re모듈이 오버킬되었습니다.사용하는 것은 어떨까요?split(또는rsplit)의 방법

se='</html>'
z.write(article.split(se)[0]+se)

예를들면,

#!/usr/bin/python

article='''<html>Larala
Ponta Monta 
</html>Kurimon
Waff Moff
'''
z=open('out.txt','w')

se='</html>'
z.write(article.split(se)[0]+se)

출력out.txt~하듯이

<html>Larala
Ponta Monta 
</html>

언급URL : https://stackoverflow.com/questions/11475885/python-replace-regex