Python re.sub 예기치 않은 교체 문제
Python 문서에 따르면 re.MULTILINE 플래그는 정규식의 ^ 문자를 다음과 같이 허용합니다. 각 줄의 시작 부분에서 일치합니다. 그러나 re.sub 함수와 함께 이 플래그를 사용하면 패턴의 첫 번째 발생만 대체되는 예상치 못한 동작이 발생할 수 있습니다.
기본 원인:
re.MULTILINE 플래그가 잘못 사용되기 때문에 문제가 발생합니다. re.sub의 네 번째 인수는 수행할 최대 대체 횟수를 지정하는 count 매개변수용입니다. 플래그 대신 count 값으로 re.MULTILINE을 사용하면 잘못된 결과가 발생합니다.
해결책:
이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.
re.sub('^//', '', s, flags=re.MULTILINE)
flags=re.MULTILINE을 지정하면 re.MULTILINE 플래그를 명시적으로 설정하여 의도한 대로 사용됩니다.
re.sub(re.compile('^//', re.MULTILINE), '', s)
re.MULTILINE 플래그를 사용하여 정규식을 컴파일하면 플래그가 패턴에 올바르게 적용됩니다.
이러한 방법 중 하나를 사용하면 re.sub가 예상대로 re.MULTILINE 플래그로 패턴의 모든 항목을 바꿀 수 있습니다.
위 내용은 re.MULTILINE 플래그를 사용할 때 re.sub가 첫 번째 항목만 바꾸는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!