>백엔드 개발 >파이썬 튜토리얼 >Python의 `re` 모듈이 정규 표현식의 단어 경계(`\b`)를 올바르게 처리합니까?

Python의 `re` 모듈이 정규 표현식의 단어 경계(`\b`)를 올바르게 처리합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 17:06:11979검색

Does Python's `re` Module Correctly Handle Word Boundaries (`b`) in Regular Expressions?

re 모듈의 정규 표현식이 단어 경계를 지원합니까(b)?

b 이스케이프 시퀀스를 사용하여 단어 경계를 일치시키려고 시도하는 중 Python의 re 모듈에서는 불일치가 발생할 수 있습니다. 다음 코드 조각은 이를 보여줍니다.

>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)

놀랍게도 예상되는 일치 개체가 없고 대신 None을 반환합니다. 이로 인해 Python이 b 표현식을 지원하는지 아니면 사용법이 올바르지 않은지에 대한 의문이 제기됩니다.

이 불일치는 코드에서 일반 문자열을 사용하기 때문에 발생합니다. 대신 아래에 설명된 대로 원시 문자열을 사용해야 합니다.

>>> x = 'one two three'
>>> y = re.search(r"\btwo\b", x)

이 수정으로 문제가 해결되어 의도한 대로 일치 개체가 생성됩니다.

또한 다음 접근 방식을 사용하는 것이 좋습니다.

word = 'two'
re.compile(r'\b%s\b' % word, re.I)

이는 대소문자를 구분하지 않는 일치를 보장하여 잠재적으로 성공적인 일치 범위를 확장합니다.

위 내용은 Python의 `re` 모듈이 정규 표현식의 단어 경계(`\b`)를 올바르게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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