Python3之正则表达式详解(Python3 正则表达式完全指南)

原创
ithorizon 4周前 (10-21) 阅读数 53 #后端开发

Python3 正则表达式完全指南

一、正则表达式简介

正则表达式(Regular Expression,简称:Regex)是一种用于匹配字符串中字符组合的模式。Python 中的正则表达式功能首要依靠于内置的 re 模块。通过正则表达式,我们可以高效地检索、替换、分割和匹配字符串。

二、re 模块的基本使用

在使用正则表达式之前,首先需要导入 re 模块:

import re

三、正则表达式的基本语法

以下是正则表达式的基本语法:

  • .:匹配除换行符以外的任意字符。
  • \w:匹配字母、数字、下划线。
  • \W:匹配非字母、数字、下划线的字符。
  • \s:匹配空白字符。
  • \S:匹配非空白字符。
  • \d:匹配数字。
  • \D:匹配非数字。
  • []:匹配括号内的任意一个字符。
  • [][]:匹配括号内的所有字符。
  • {}:匹配前面的子表达式出现指定次数。
  • []?:匹配前面的子表达式出现0次或1次。
  • []+:匹配前面的子表达式出现1次或多次。
  • []*:匹配前面的子表达式出现0次或多次。
  • ^:匹配输入字符串的起初。
  • $:匹配输入字符串的终止。
  • ():标记一个子表达式的起初和终止。
  • |:匹配两个或多个分支选择的任意一个。

四、re 模块的首要函数

以下是 re 模块中常用的函数:

  • re.match(pattern, string):从字符串的起始位置起初匹配正则表达式,如果匹配胜利返回匹配对象,否则返回 None
  • re.search(pattern, string):在字符串中搜索第一次出现的正则表达式,如果匹配胜利返回匹配对象,否则返回 None
  • re.findall(pattern, string):在字符串中找到所有匹配正则表达式的子串,并返回一个列表。
  • re.finditer(pattern, string):在字符串中找到所有匹配正则表达式的子串,并返回一个迭代器。
  • re.sub(pattern, repl, string):替换字符串中所有匹配正则表达式的子串。
  • re.split(pattern, string):按照正则表达式分割字符串。
  • re.compile(pattern):编译正则表达式,返回一个正则表达式对象。

五、正则表达式示例

以下是一些正则表达式的示例:

1. 匹配邮箱地址

pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'

email = 'example@example.com'

match = re.match(pattern, email)

if match:

print('邮箱地址匹配胜利')

else:

print('邮箱地址匹配挫败')

2. 匹配手机号码

pattern = r'\b1[3-9]\d{9}\b'

phone = '13812345678'

match = re.match(pattern, phone)

if match:

print('手机号码匹配胜利')

else:

print('手机号码匹配挫败')

3. 查找所有数字

pattern = r'\d+'

text = '这是一个包含数字123和456的字符串'

matches = re.findall(pattern, text)

print(matches) # 输出:['123', '456']

4. 替换字符串中的数字

pattern = r'\d+'

text = '这是一个包含数字123和456的字符串'

replaced_text = re.sub(pattern, 'number', text)

print(replaced_text) # 输出:这是一个包含数字number和number的字符串

5. 分割字符串

pattern = r'\s+'

text = '这是一个 包含空格的 字符串'

split_text = re.split(pattern, text)

print(split_text) # 输出:['这是一个', '包含空格的', '字符串']

六、正则表达式的优化

在使用正则表达式时,以下是一些优化技巧:

  • 使用非捕获组来避免不必要的捕获,例如:(?:pattern)
  • 使用原子组来避免回溯,例如:(?>pattern)
  • 使用 possessive quantifiers 来避免回溯,例如:

七、总结

正则表达式是 Python 中一种有力的字符串处理工具,通过掌握正则表达式的语法和 re 模块的使用,我们可以高效地处理字符串。在实际应用中,我们需要灵活运用正则表达式的基本语法和函数,并结合实际需求进行优化,从而尽也许降低损耗代码的执行效能和可维护性。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门