>백엔드 개발 >파이썬 튜토리얼 >백엔드 개발에 Python 정규식을 사용하는 방법

백엔드 개발에 Python 정규식을 사용하는 방법

王林
王林원래의
2023-06-22 17:21:071249검색

백엔드 개발에서는 데이터 처리와 정보 추출이 매우 중요합니다. 정규식은 백엔드 개발을 보다 효율적으로 수행하는 데 도움이 되는 강력한 데이터 처리 및 정보 추출 도구입니다. 이 기사에서는 백엔드 개발에 Python 정규식을 사용하는 방법을 소개합니다.

1. 정규식에 대한 기본 지식

정규식은 문자 패턴을 설명하는 도구로, 대량의 텍스트 데이터에서 필요한 정보를 빠르고 정확하게 일치시키는 데 도움이 됩니다.

정규 표현식은 일반적으로 문자, 연산자 및 메타 문자로 구성됩니다. 특수 문자와 메타 문자는 문자 유형이나 일치 규칙 유형을 나타낼 수 있습니다. 다음은 일반적인 정규식 메타 문자 목록입니다.

metacharacters 문자 일치
이스케이프 문자
. 줄 바꾸기를 제외한 모든 문자와 일치합니다
^ 문자열의 시작 부분과 일치
$ 문자열의 끝 부분과 일치
[] Character set
[^] 비 문자 세트
* 경기 이전 문자를 0회 이상 일치
+ 이전 문자를 1회 이상 일치
? 이전 문자를 0 또는 1회 일치
{} 이전 문자 a와 일치 지정된 횟수
() 의 왼쪽 또는 오른쪽 표현식과 일치합니다. 괄호 안의 표현식과 일치하며, 캡처 그룹도 나타냅니다.

2. 응용 프로그램 of Python의 정규식

re 모듈은 Python에 내장되어 있어 완전한 정규식 지원을 제공하고 데이터 처리 및 정보 추출을 용이하게 할 수 있습니다.

  1. 문자열의 숫자 일치

d 메타 문자를 사용하여 숫자를 일치시키고 +를 사용하여 여러 숫자를 일치시킬 수 있습니다.

import re

text = "John has 2 apples, and Jane has 3 oranges."

result = re.findall(r'd+', text)

print(result)

출력은 다음과 같습니다.

['2', '3']
  1. 이메일 주소 일치

[A - Za-z0-9._%+-]+는 이메일 사용자 이름과 일치합니다. 이메일 도메인 이름과 일치하려면 @[A-Za-z0-9.-]+.[A-Za-z]{2,}를 사용하세요. :

import re

text = "My email address is john@example.com."

result = re.findall(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}', text)

print(result)

출력 결과는 다음과 같습니다.

['john@example.com']
  1. HTML에서 하이퍼링크 일치

d782e5a8e5da02cda3bd861b948b0baa match in HTML 하이퍼링크:

import re

html = """
<a href="https://www.google.com">Google</a>,
<a href="https://www.baidu.com">Baidu</a>,
<a href="https://www.sogou.com">Sogou</a>,
"""

result = re.findall(r'<a[^>]+href="(.*?)"[^>]*>', html)

print(result)

출력 결과:

['https://www.google.com', 'https://www.baidu.com', 'https://www.sogou.com']

3. 정규식의 최적화 기술

정규식은 매우 강력하지만 빅데이터 및 복잡한 매칭을 처리할 때 효율성이 상대적으로 낮을 수 있습니다. 따라서 더 빠른 일치 속도를 달성하려면 정규식 작성 방식을 최적화해야 합니다.

  1. 문자 그룹을 일치시킬 때 문자 세트 []를 사용하여 지정된 문자를 대체합니다.

예를 들어 [A-Z]|[a-z]|[ 대신 [A-Za-z0-9]를 사용할 수 있습니다. 0-9] , 정규식의 문자 수를 줄이고 일치 속도를 최적화할 수 있습니다.

  1. 그리디 모드 사용을 피하세요

그리디 모드는 최대한 많은 문자를 일치시키는 패턴을 말합니다. 예를 들어 문자열 "hello world"에서 "hell"을 일치시킬 때 re.findall(r'he.l', text)는 "hello worl"과 일치합니다. . 탐욕스럽게 "o wor"와 일치하기 때문입니다. 이것이 결과입니다. 우리는보고 싶지 않습니다. 욕심 모드를 피하기 위해 . 뒤에 ?를 추가하고 re.findall(r'he.?l', text)과 같은 지연 모드를 사용할 수 있습니다.

  1. 원시 문자열 사용

정규 표현식에는 백슬래시()가 포함되는 경우가 많습니다. 원시 문자열을 사용하지 않으면 백슬래시가 이스케이프 문자로 해석됩니다. 따라서 일반적으로 re.findall(r'e394a3aeaaa8acac89d0bf00483ff7d6', text)와 같이 원래 문자열을 사용함을 나타내기 위해 정규식 앞에 r을 추가합니다.

4. 요약

백엔드 개발에서 정규식은 데이터 처리 및 정보 추출에 도움을 주고 개발 효율성을 향상시킬 수 있는 매우 중요한 도구입니다. 이 글에서는 정규식에 대한 기본 지식과 파이썬에서의 적용을 소개하고, 최적화 팁도 제공합니다. 독자들에게 도움이 되기를 바랍니다.


  1. >

위 내용은 백엔드 개발에 Python 정규식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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