>  기사  >  백엔드 개발  >  Python 정규 표현식에서 언제 \'r\' 접두사를 사용해야 합니까?

Python 정규 표현식에서 언제 \'r\' 접두사를 사용해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-19 17:07:02365검색

When Should You Use the 'r' Prefix in Python Regular Expressions?

Python regex - r 접두사

Python의 정규식 모듈은 r 접두사를 지원합니다. 이는 다음 문자열을 나타냅니다. 원시 문자열로 처리되어야 합니다. 이는 r 접두사가 Python이 백슬래시 문자를 이스케이프 문자로 해석하는 것을 방지하므로 이스케이프 시퀀스로 작업할 때 특히 유용합니다.

그러나 r 접두사는 다음과 같습니다. 항상 필요한 것은 아닙니다. 예를 들어 Python에서 유효하지 않은 이스케이프 시퀀스는 r 접두사가 사용되지 않은 경우에도 여전히 이스케이프 시퀀스로 해석됩니다. 예를 들어 첫 번째 예에서는

import re
print (re.sub('\s+', ' ', 'hello     there      there'))

정규식 패턴 's'가 하나 이상의 공백 문자와 일치합니다. 이 경우 백슬래시 문자가 이스케이프 문자로 사용되지 않기 때문에 r 접두사는 필요하지 않습니다(단순히 일치시킬 문자 범위를 정의함).

그러나 r Python에서 유효한 이스케이프 시퀀스를 사용할 때는 접두사가 필요합니다. 예를 들어, 두 번째 예에서

import re
print (re.sub(r'(\b\w+)(\s+\b)+', r'', 'hello     there      there'))

정규식 패턴 r'(bw )(s 1b) '는 사이에 공백이 포함되어 한 번 이상 반복되는 단어와 일치합니다. 이 경우 백슬래시 문자가 단어 경계를 정의하기 위한 이스케이프 문자로 사용되기 때문에 r 접두사가 필요합니다.

마지막으로 r 접두사가 원시 문자열을 사용하는 경우 항상 필요한 것은 아닙니다. 예를 들어 세 번째 예는 두 번째 예와 동일합니다.

import re
print (re.sub('(\b\w+)(\s+\b)+', '', 'hello     there      there'))

이 경우 r 접두사는 사용되지 않지만 정규식 패턴은 여전히 ​​다음과 같이 처리됩니다. 원시 문자열. 전체 문자열 리터럴이 작은따옴표로 묶여 있기 때문입니다. 이는 Python에서 원시 문자열을 나타냅니다.

결론적으로 r 접두사는 항상 필요한 것은 아니지만 사용할 때 권장됩니다. Python에서 유효한 이스케이프 시퀀스입니다.

위 내용은 Python 정규 표현식에서 언제 \'r\' 접두사를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.