첫 번째 예가 왜 없이 작동합니까? 이스케이프 시퀀스 앞에 "r" 접두사가 있습니까? 이스케이프 시퀀스를 처리할 때 필수여야 한다고 일반적으로 믿어집니다.
<code class="python"># example 1 import re print(re.sub('\s+', ' ', 'hello there there')) # prints 'hello there there' - not expected as r prefix is not used</code>
"r" 접두어를 권장하는 일반 규칙에도 불구하고 정규식 패턴에서 항상 필요한 것은 아닙니다. 사용하세요.
이스케이프 시퀀스에서 백슬래시()는 특수한 문자 시퀀스를 해석하거나 특별한 의미가 있는 문자를 이스케이프하는 표시 역할을 합니다. 그러나 백슬래시 앞에 오는 모든 시퀀스가 유효한 이스케이프 시퀀스로 간주되는 것은 아닙니다.
이를 설명하려면 다음 예를 고려하세요.
"r" 접두사가 이스케이프 시퀀스 앞에 없으면 Python은 인식된 이스케이프 시퀀스인 경우에만 이를 해석합니다. 즉, 's'와 같은 잘못된 이스케이프 시퀀스를 해석하려고 시도하지 않습니다.
이 동작은 제공된 첫 번째 예에서 관찰할 수 있습니다.
그러나 "r" 접두사가 사용되면 패턴 내의 모든 문자는 문자 그대로 해석됩니다. 즉, r's'는 문자 's' 다음에 오는 문자 그대로의 백슬래시 문자를 나타냅니다.
"r" 접두사는 모든 이스케이프 시퀀스에 엄격히 필요하지는 않지만 일반적으로 특히 여러 이스케이프 시퀀스를 포함하는 복잡한 패턴으로 작업할 때 사용하는 것이 좋습니다. 이렇게 하면 혼란과 의도하지 않은 결과를 방지하는 데 도움이 됩니다.
위 내용은 Python 정규식: 이스케이프 시퀀스에 \'r\' 접두사가 필수인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!