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

Python에서 정규식을 구현하는 방법

WBOY
WBOY앞으로
2023-05-11 17:40:061480검색

Python 정규식

정규식 자체는 프로그래밍 언어와 무관한 지식이지만, 기본적으로 우리가 사용하는 프로그래밍 언어는 그 구현을 제공합니다. 물론 회사마다 약간의 차이도 있습니다. 구현 중 일부는 더 많은 기능을 지원하고 일부는 더 적은 기능을 지원합니다.

정규 표현식은 실무에서 널리 사용되는 도구이기 때문에 언어 없이 학습하는 것은 신뢰할 수 없다고 생각합니다.

정규식 함수 소개

정규식 메인 API 관계 다이어그램

Python에서 정규식을 구현하는 방법

이 다이어그램은 여기에서 함수 간의 관계를 기본적으로 명확하게 설명한 것 같습니다. match는 텍스트 시작 부분부터 정규식을 일치시키고 일치하는 개체를 반환합니다. 그렇지 않으면 None을 반환합니다.

  • search는 전체 텍스트에서 정규식을 일치시키고 그렇지 않으면 None을 반환합니다. .

  • sub는 텍스트 교체를 위해 정규식을 사용합니다(정규식 기능: 검색 및 바꾸기)

  • findall은 전체 텍스트에서 정규식을 일치시키고 일치하는 모든 결과를 목록 형식으로 반환합니다.

  • finditer는 전체 텍스트의 정규 표현식과 일치하여 일치하는 모든 결과를 반복자로 반환합니다.

  • split은 정규식을 사용하여 텍스트를 분할합니다

  • 여기서 볼 수 있듯이 ·re· 바로 아래에 사용할 수 있는 함수가 많고, re 아래에도 같은 이름의 함수가 많이 있습니다. .compile 함수. ·re· 모듈 바로 아래에는 쉽게 사용할 수 있도록 공식적으로 제공되는 기능이 있으며, 이를 사용하는 가장 정통적인 방법은 re.compile을 이용하는 것입니다.

    그래서 다음 내용에 대해서는 기본적으로 re.compile과 아래 메소드를 사용하여 구현합니다.

re.compile 함수 re.compile 下面有很多同名的函数。直接在 ·re· 模块下的是官方提供方便使用的函数,通过 re.compile 来使用是最正统的方式。所以,接下来的内容,我基本上智慧使用 re.compile 及其下的方法来实现。

re.compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式 (Pattern)对象,供 match()search() 以及其它函数使用。

语法:

re.compile(pattern[, flags])
  • pattern: 一个字符串形式的正则表达式

  • flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

    • re.I 忽略大小写

    • re.L 多行模式

    • re.S 即为 '.' 并且包括换行符在内的任意字符('.' 不包括换行符)

    • re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖 Unicode 字符属性数据库

    • re.X 为了增加可读性,忽略空格和 ‘#’ 后面的注释

示例:查找字符串中的所有数字

import re

s = 'runoob 123 google 456'
result1 = re.findall(r'\d+', s)

pattern = re.compile(r'\d+') # 查找数字
result2 = pattern.findall(s)
result3 = pattern.findall(s, 0, 20)


print(result1)
print(result2)
print(result3)


"""
output:
[‘123', ‘456']
[‘123', ‘456']
[‘123', ‘45']
"""

学习模板

接下来我们要逐渐学习正则表达的内容,这些内容是非常有趣的!Interesting and Excited!

这里给出一个接下来会一直使用的示例模板,这个模板是这篇博客最重要的东西了,之后的内容都会基于它进行扩展。所以,请好好理解它。

import re

# 需要进行搜索或者匹配的文本
text = """I love you yesterday and today."""

# 正则表达式
regexp = r'love'


# 编译(对正则表达式进行编译获取 Pattern Object)
pattern = re.compile(regexp)

# 搜索
m = pattern.search(text)
if m:
    print("匹配对象: ", m)
    print("匹配的字符串: ", m.group())
    print("匹配的开始位置: ", m.start())
    print("匹配的结束位置: ", m.end())
    print("匹配位置的元组: ", m.span())
else:
    print("No match!")

# 替换
new_text = pattern.sub("hate", text)
print(new_text)

Python에서 정규식을 구현하는 방법

注意: 正则表达式 regexp 在开始前会使用 r

compile 함수는 정규식을 컴파일하고 match() 검색( ) 및 기타 기능.

문법:

rrreee

pattern: 문자열 형식의 정규 표현식
    re.I 대소문자 무시 re.U는 특수 문자 집합 w, W, b, B, d, D, s, S를 나타내며 유니코드 문자 속성 데이터베이스 다음에 댓글 달기예: 문자열에서 모든 숫자 찾기학습 템플릿다음으로 매우 흥미로운 정규 표현식의 내용을 점차적으로 배울 것입니다! 흥미롭고 신난다!
    플래그는 선택 사항이며 대소문자 무시, 여러 줄 모드 등과 같은 일치 패턴을 나타냅니다. 특정 매개변수는 다음과 같습니다.
    re.L 다중 행 모드
    re.S는 '.'이며 개행(' .' 제외) 개행)
    re.X를 사용하여 가독성을 높이고 공백을 무시합니다. ‘#’
    rrreee
    🎜🎜다음은 항상 사용되는 샘플 템플릿입니다. 이 템플릿은 이 블로그에서 가장 중요한 것이며, 후속 콘텐츠는 이를 기반으로 확장될 것입니다. 그러니 잘 이해해주시기 바랍니다. 🎜🎜rrreee🎜파이썬에서 정규식을 구현하는 방법🎜🎜🎜주의 :🎜 정규 표현식 regexp는 시작하기 전에 r 접두사를 사용합니다. 그 목적은 정규 표현식에서 많은 수의 이스케이프 문자를 사용하여 전체 가독성을 손상시키는 것을 방지하는 것입니다. 🎜🎜Python의 정규식에는 매우 사용하기 쉬운 메서드가 많이 포함되어 있지만 여기서는 그 내용을 너무 많이 소개하지 않겠습니다. 우리는 항상 위의 패턴을 사용할 것입니다. 사용하기 쉬운 방법은 일종의 캡슐화일 뿐이고 이 기본 방법을 사용하는 방법을 배우면 자연스럽게 다른 방법으로 이어질 것이기 때문입니다. 일치하는 객체는 정규 표현식에 대한 정보를 얻을 수 있습니다. 가장 중요한 방법과 속성은 다음과 같습니다. 🎜start()🎜🎜경기의 시작 위치를 반환합니다.🎜🎜🎜🎜end()🎜🎜경기의 종료 위치를 반환합니다.🎜🎜🎜🎜span()🎜🎜일치하는 (시작, 끝) 위치를 포함하는 튜플을 반환합니다. 🎜 🎜🎜🎜

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

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제