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

王林
풀어 주다: 2023-06-22 17:21:07
원래의
1124명이 탐색했습니다.

백엔드 개발에서는 데이터 처리와 정보 추출이 매우 중요합니다. 정규식은 백엔드 개발을 보다 효율적으로 수행하는 데 도움이 되는 강력한 데이터 처리 및 정보 추출 도구입니다. 이 기사에서는 백엔드 개발에 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에서 하이퍼링크 일치

1+href="(. ?)"1> match in HTML 하이퍼링크:

import re html = """ GoogleBaiduSogou, """ result = re.findall(r']+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'<[A-Za-z0-9]+>', text)와 같이 원래 문자열을 사용함을 나타내기 위해 정규식 앞에 r을 추가합니다.

4. 요약

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


  1. >

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!