코딩 및 코딩 효율성을 위해 Python 정규식을 사용하는 방법

PHPz
풀어 주다: 2023-06-22 22:52:39
원래의
1573명이 탐색했습니다.

초보자는 Python 코드를 작성할 때 HTML 웹 페이지에서 데이터 구문 분석, 텍스트 파일에서 특정 정보 추출, 긴 텍스트에서 핵심 부분 가로채기 등 문자열 처리 문제에 자주 직면합니다. 이때 정규식을 사용하여 이러한 문제를 해결할 수 있습니다. 이 기사에서는 Python의 정규식을 사용하여 코드를 작성하고 코딩 효율성을 향상시키는 방법을 소개합니다.

1. 정규식이란 무엇인가요?

정규식은 문자열을 일치시키는 데 사용되는 방법입니다. 특수 기호와 문자를 사용하여 규칙을 형성하므로 텍스트를 필터링하고 검색하는 데 매우 편리합니다. Python에서 일반적으로 사용되는 정규식 모듈은 문자열에 대한 정규 일치 및 대체 작업을 구현하는 데 사용할 수 있는 re 모듈입니다.

2. 정규식의 기본 구문

정규식을 사용하기 전에 몇 가지 기본 구문을 익혀야 합니다.

문자 집합: [ ]는 대괄호 안에 포함된 모든 문자와 일치합니다.

메타 문자: . 개행 문자를 제외한 모든 문자와 일치합니다.

반복 횟수: *는 0개 이상의 반복 문자와 일치하고, +는 하나 이상의 반복 문자와 일치하며, ?는 0개 이상의 반복 문자와 일치합니다.

시작 및 끝: ^는 문자열의 시작 위치와 일치하고, $는 문자열의 끝 위치와 일치합니다.

반의어: W는 문자나 숫자가 아닌 문자와 일치하고 S는 공백이 아닌 문자와 일치합니다.

그룹: ( )는 쉬운 조작을 위해 그룹화하는 데 사용됩니다.

3. 정규식 연습

다음은 코드 작성 및 코딩 효율성을 위해 정규식을 사용하는 방법을 보여주는 예입니다.

예제 1: 텍스트에서 날짜 추출

텍스트 파일에서 날짜 정보를 추출해야 합니다. 예: 2020년 5월 1일, 다음 정규식을 사용할 수 있습니다.

import re

string = '2020年5月1日'
pattern = r"d+年d+月d+日"

result = re.findall(pattern, string)

print(result)
로그인 후 복사

출력 결과:

['2020年5月1日']
로그인 후 복사

예 2 : HTML 페이지에서 링크 추출

HTML 페이지에서는 모든 링크 정보를 추출해야 합니다. 예:

import re
import requests

r = requests.get('http://www.baidu.com')
pattern = re.compile(r'(http|https|ftp)://[^s]+')

result = pattern.findall(r.text)

print(result)
로그인 후 복사

출력 결과:

['http://www.baidu.com/', 'http://home.baidu.com/', 'http://map.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://fanyi.baidu.com/', 'http://news.baidu.com/', 'http://baijiahao.baidu.com/', 'http://xueshu.baidu.com/', 'http://wenku.baidu.com/', 'http://music.baidu.com/', 'http://image.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://map.baidu.com/', 'http://wenku.baidu.com/', 'http://jingyan.baidu.com/', 'http://tieba.baidu.com/', 'http://zhidao.baidu.com/', 'http://tieba.baidu.com/', 'http://tieba.baidu.com/f?kw=%D6%D0%C9%BD%C1%F4%B2%FA&fr=index', 'http://tieba.baidu.com/f?kw=%B0%D9%B6%AF%B2%FA%D0%ED&fr=index', 'http://tieba.baidu.com/f?kw=%D2%EF%BE%AD%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=Ubuntu&fr=index', 'http://tieba.baidu.com/f?kw=%B0%C2%D7%B0%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=%B7%D7%CA%D0%CE%C4&fr=index', 'http://music.baidu.com/new', 'http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss', 'http://baijiahao.baidu.com/u?app_id=1589334281367279', 'http://xueshu.baidu.com/s?wd=paperuri%3A%2836d90593d4c8d317f9ef4ef93bf56000%29&filter=sc_long_sign&sc_ks_para=q%3D%E9%A3%9F%E5%93%81%E5%AE%89%E5%85%A8', 'http://wenku.baidu.com/view/13908a38069661ce85006134', 'http://music.baidu.com/top?pst=shouyeTop', 'https://www.baidu.com/duty/', 'http://ir.baidu.com']
로그인 후 복사

예 3: 문자열 쉼표를 마침표

로 바꿉니다. 텍스트 파일에서, 쉼표를 마침표로 바꿔야 합니다. 예:

import re

string = '12,34,56,78'
pattern = r','
replaced_string = re.sub(pattern, '.', string)

print(replaced_string)
로그인 후 복사

출력 결과:

12.34.56.78
로그인 후 복사

예 4: 문자열이 이메일 주소인지 확인

로그인 시스템을 개발할 때 사용자가 입력하는 내용이 이메일인지 확인해야 합니다. 법적 주소, 예:

import re

email = 'example@gmail.com'
pattern = r'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$'

if re.match(pattern, email):
    print('Email address is correct!')
else:
    print('Invalid email address!')
로그인 후 복사

출력 결과:

Email address is correct!
로그인 후 복사

4. 요약

Python 정규 표현식은 텍스트 처리에서 중요한 역할을 합니다. 정규 표현식의 기본 구문을 익히면 더 빠르고 효율적으로 코딩 및 문자열 처리를 완료할 수 있습니다. 효율적으로 작업을 수행합니다. 실제 개발에서는 더 나은 코딩 효율성과 코드 품질을 달성하기 위해 특정 요구 사항에 따라 다른 Python 라이브러리 및 함수와 함께 정규식을 유연하게 적용할 수 있습니다.

위 내용은 코딩 및 코딩 효율성을 위해 Python 정규식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿