>백엔드 개발 >파이썬 튜토리얼 >Python 정규 표현식의 고급 사용법

Python 정규 표현식의 고급 사용법

高洛峰
高洛峰원래의
2017-01-12 16:25:441313검색

Python의 경우 규칙성을 배우려면 re 모듈을 사용하는 방법을 배워야 합니다. 이 기사에서는 모든 사람이 마스터해야 하는 몇 가지 고급 기술을 보여줍니다.

정규식 개체 컴파일

re.compile 함수는 패턴 문자열과 선택적 플래그 매개변수를 기반으로 정규식 개체를 생성합니다. 이 객체에는 정규식 일치 및 교체를 위한 일련의 메서드가 있습니다. 사용법에는 약간의 차이가 있습니다. 예를 들어 문자열을 일치시키려면 다음 방법을 사용할 수 있습니다.

컴파일을 사용하면

왜 사용해야 합니까? 이와 같이? 실제로 정규식 일치 속도를 높이기 위해 정규식 개체를 재사용합니다. 두 가지 방법의 효율성을 비교해 보겠습니다.

두 번째 방법이 훨씬 빠르다는 것을 알 수 있습니다. 실제 작업에서는 컴파일된 정규식 개체를 더 많이 사용할수록 효과가 더 좋아진다는 것을 알게 될 것입니다.

그룹

일치하는 콘텐츠를 그룹화하는 방법을 본 적이 있을 것입니다.

Python 正则表达式的高级用法

Pass 개체에 괄호를 추가합니다. 결과와 정확히 일치하도록 일치합니다. 중첩된 그룹화를 수행할 수도 있습니다:

Python 正则表达式的高级用法

그룹화는 요구 사항을 충족할 수 있지만 때로는 가독성이 좋지 않은 경우 다음과 같이 그룹화 이름을 지정할 수 있습니다.

Python 正则表达式的高级用法

이제 가독성이 매우 높아졌습니다.

문자열 일치

sed를 배운 학생들은 다음과 같은 대체 사용법을 본 적이 있을 것입니다.

이 1은 이전 정규 일치의 결과를 나타냅니다. 위의 sed는 일치하는 결과에 대괄호를 추가하는 것입니다.

re 모듈에도 이런 사용법이 있습니다:

이름이 지정된 그룹화를 사용할 수도 있습니다:

둘러보기(Look around)

re 모듈은 근처 일치도 지원합니다. 이해하려면 예를 살펴보세요.

Python 正则表达式的高级用法

정규 일치의 경우 이전에 본 것의 대부분은 표현식과 일치하지만 때로는 요구 사항이 훨씬 더 복잡하며 특히 대체와 관련하여 더욱 복잡합니다.

예를 들어 Slack의 API를 통해 다음 문장과 같은 채팅 기록을 얻을 수 있습니다.

그 중에는 <@U1EAT8MG9>와 <@U0K1MF23Z> Slack에서는 다른 인터페이스를 통해 이 대응을 얻어야 합니다.

결과는 다음과 유사합니다.

대응을 분석한 후 꺾쇠 괄호도 제거되기를 바랍니다. 교체 후는 "@xiaoming, @laolin 네, 정말 그렇네요."

정규 표현식을 사용하여 이를 달성하는 방법은 무엇입니까?

Python 正则表达式的高级用法

물론 패턴도 함수일 수 있습니다.

Python 정규 표현식의 고급 사용법과 관련된 더 많은 기사를 보려면 다음을 참조하세요. PHP 중국어 넷에 주목하세요!


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