Python re 正则表达式

Python re 正则表达式

正则表达式(Regular Expression)是一种文本模式,用于匹配特定模式的字符串。在 Python 中,我们可以通过 re 模块来处理正则表达式,非常方便实用。

re 模块的基本使用

re 模块中包含了许多函数,其中最常用的是 re.match 和 re.search。

re.match 函数

re.match 函数从字符串的开头开始查找符合正则表达式的字符串。如果找到了,返回一个 match 对象,否则返回 None。

import re

str = "Hello, World!"
result = re.match("Hello", str)

if result:
  print("Match Found!")
else:
  print("Match Not Found.")

输出结果为:

Match Found!

re.search 函数

re.search 函数从字符串中查找符合正则表达式的字符串。如果找到了,返回一个 match 对象,否则返回 None。

import re

str = "Hello, World!"
result = re.search("World", str)

if result:
  print("Match Found!")
else:
  print("Match Not Found.")

输出结果为:

Match Found!

正则表达式语法

正则表达式语法比较复杂,但理解了规则后,变得非常强大。下面介绍一些常用的正则表达式语法。

字符匹配

字符 说明
. 匹配除换行符外的任意字符
\w 匹配字母、数字、下划线
\W 匹配非字母、数字、下划线
\d 匹配数字
\D 匹配非数字
\s 匹配任意空白字符,包括空格、制表符、换页符
\S 匹配任意非空白字符
import re

str = "Hello, World!"
result = re.match("He..o", str)

if result:
  print("Match Found!")
else:
  print("Match Not Found.")

输出结果为:

Match Found!

重复匹配

字符 说明
* 匹配前面的字符0次或多次
+ 匹配前面的字符1次或多次
? 匹配前面的字符0次或1次
{n} 匹配前面的字符n次
{n,} 匹配前面的字符至少n次
{n,m} 匹配前面的字符n次到m次
import re

str = "Hello, World!"
result = re.match("H.*o", str)

if result:
  print("Match Found!")
else:
  print("Match Not Found.")

输出结果为:

Match Found!

分组匹配

使用括号可以将正则表达式分组,在使用 re 模块时可以通过 group 函数获取各个组匹配的结果。

import re

str = "hello, python and java."
result = re.search("(python|java)", str)

if result:
  print(result.group())
else:
  print("Match Not Found.")

输出结果为:

python

贪婪匹配和非贪婪匹配

前面介绍的重复匹配默认是贪婪匹配,即尽可能多的匹配。下面介绍一下非贪婪匹配。

在重复匹配符后加上 ? 可以实现非贪婪匹配。

import re

str = "hello, python and java."
result = re.match(".*?python", str)

if result:
  print(result.group())
else:
  print("Match Not Found.")

输出结果为:

hello, python

结论

正则表达式是一种强大的文本匹配工具,在 Python 中通过 re 模块可以非常方便地实现正则表达式的匹配。需要注意的是,正则表达式语法比较复杂,需要花一些时间进行学习和掌握,但同时也给我们带来了非常强大的功能。

在实际开发中,正则表达式可以用于很多应用场合,比如数据校验、文本搜索替换等等。

建议大家多加练习,深入理解正则表达式的各种语法规则,提升自己对于文本匹配和处理的能力。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程