Programming

python .replace () 정규식

procodes 2020. 5. 26. 21:45
반응형

python .replace () 정규식


이 질문에는 이미 답변이 있습니다.

"</ html>"태그 다음에 모든 것을 가져 와서 삭제하려고하는데 코드에서 아무것도하지 않는 것 같습니다. 않습니다

.replace()

정규식을 지원하지?

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

아닙니다. 파이썬에서 정규 표현식은

re

모듈에 의해 처리됩니다 .

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

@ Ignácio가 옳습니다. +1, 더 많은 예제를 제공하겠습니다.정규식을 사용하여 텍스트를 바꾸려면

re.sub

함수를 사용하십시오 .

sub (패턴, repl, 문자열 [, 개수, 플래그])

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]

이것은 훨씬 깨끗하며 정규식 기반 솔루션보다 훨씬 빠릅니다.


이 특별한 경우에

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

반응형