跳至主要内容

正则表达式基本语法

Regular Expression Basic Syntax in Python

正则表达式 (regex) 是文本处理中用于模式匹配和数据提取的强大工具。Python 的 re 模块提供了一套全面的 函数 来处理正则表达式。本文深入探讨了 Python 中正则表达式的语法,并附有实用示例,以帮助你更好地掌握这些概念。

正则表达式语法

正则表达式使用一系列字符来定义搜索模式。以下是 Python 中一些常见正则表达式语法元素的快速概述

  • .(点):匹配除换行符 ' ' 之外的任何单个字符。
  • ^(脱字符):匹配字符串的开头。
  • $(美元符号):匹配字符串的结尾。
  • *(星号):匹配前一个元素的 0 次或多次重复。
  • +(加号):匹配前一个元素的 1 次或多次重复。
  • ?(问号):匹配前一个元素的 0 次或 1 次重复。
  • {m,n}(大括号):匹配前一个元素的 m 到 n 次重复。
  • [](方括号):匹配方括号中包含的任何单个字符。
  • |(管道):充当表达式之间的逻辑 OR。
  • ()(括号):将模式分组在一起。

下表总结了这些元素

符号 描述
. 匹配除换行符之外的任何字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
* 匹配 0 次或多次重复
+ 匹配 1 次或多次重复
? 匹配 0 次或 1 次重复
{m,n} 匹配 m 到 n 次重复
[] 匹配方括号中的任何字符
| 逻辑 OR
() 将模式分组

实用示例

让我们使用 Python 的 re 模块在实际示例中应用这些元素

  1. 在字符串中查找所有 'a' 实例
import re
re.findall('a', 'Mary had a little lamb')
  1. 搜索 'a' 和 'z' 之间的任何字符
re.findall('[a-z]', 'Hello World!')
  1. 匹配字符串中的任何数字
re.findall('\d', 'The room number is 42.')
  1. 查找三个连续的数字
re.findall('\d{3}', 'Call 911 for emergency')
  1. 搜索以 'S' 开头的单词
re.findall(r'S\w+', 'The Sun is shining in the Sky.')
  1. 匹配字符串开头的单词
re.match('^Hello', 'Hello, world!')
  1. 查找非空白字符序列
re.findall('\S+', 'Hello, world! How are you?')
  1. 用井号 (#) 替换所有数字
re.sub('\d', '#', 'Password123')
  1. 按任何空白字符拆分字符串
re.split('\s+', 'Split this string by spaces')
  1. 检查字符串是否以 'world' 结尾
bool(re.search('world$', 'Hello, world'))

这些示例展示了 Python 中正则表达式在各种文本处理任务中的多功能性和强大性。通过掌握语法并通过实际示例应用它,你可以利用正则表达式高效地在 Python 项目中搜索、匹配和操作 字符串

与我们一起贡献!

不要犹豫,在 GitHub 上为 Python 教程做出贡献:创建一个分支,更新内容并发出拉取请求。

Profile picture for user AliaksandrSumich
Python 工程师,第三方 Web 服务集成专家。
更新时间:2024-05-03 - 21:53
Profile picture for user angarsky
已审阅并批准