Tags: 数据类型 AI 人工智能

Python如何用正则表达式快速查找文本

正则表达式(Regular Expression,简称RegEx)是一种强大的文本搜索工具,能够快速定位、匹配文本中符合特定规则的内容。在Python中,使用内置的re模块就可以轻松实现各种复杂的文本匹配。

1. 正则表达式是什么?

简单来说,正则表达式就是一种特殊的文本搜索语法,它能帮助我们快速找到想要的文本内容。比如:匹配电话号码、邮箱地址、网址等。

2. 在Python中使用正则表达式

Python内置的re模块专门用于处理正则表达式。

import re

2.1 简单示例

我们先用一个简单例子,看正则表达式如何工作:

import re

text = "我爱Python编程!"
match = re.search("Python", text)

if match:
    print("找到匹配:", match.group())
else:
    print("未找到匹配。")

运行结果:

找到匹配: Python

3. Python正则表达式常用函数

常见的re模块函数包括:

  • re.findall():查找所有匹配项,返回一个列表。
  • re.search():搜索字符串中第一个匹配项,返回Match对象。
  • re.split():根据匹配的内容分割字符串,返回分割后的列表。
  • re.sub():替换字符串中匹配的内容。

3.1 findall() 示例

找出文本中的所有数字:

import re

txt = "电话123-4567,备用电话987-6543"
nums = re.findall(r"\d+", txt)
print(nums)  # ['123', '4567', '987', '6543']

3.2 split() 示例

用逗号或分号分割字符串:

import re

txt = "苹果,香蕉;橘子;梨"
fruits = re.split(r"[;,]", txt)
print(fruits)  # ['苹果', '香蕉', '橘子', '梨']

3.3 sub() 示例

替换文本中的数字为#:

import re

txt = "密码123456"
result = re.sub(r"\d", "#", txt)
print(result)  # 密码######

4. 正则表达式常用特殊符号

符号作用说明示例
.匹配任意单个字符(除换行符)a.b
\d匹配数字(0-9)\d+
\w匹配字母、数字、下划线\w+
\s匹配空格符\s+
^匹配字符串开头^hello
$匹配字符串结尾world$
[abc]匹配a、b或c中任意一个字符[a-z]
*匹配0次或多次ab*
+匹配1次或多次ab+
?匹配0次或1次ab?
{n}匹配n次a{3}
|或(匹配多个条件之一)a|b

5. Match对象的方法

如果使用re.search()找到匹配内容,会返回一个Match对象,它有几个常用方法:

  • .group():返回匹配的内容。
  • .start():返回匹配开始的位置。
  • .end():返回匹配结束的位置。
  • .span():返回匹配内容的位置元组(start, end)。
import re

txt = "Python编程语言"
match = re.search("编程", txt)

print(match.group())  # 编程
print(match.start())  # 6
print(match.end())    # 8
print(match.span())   # (6, 8)

6. 总结

掌握Python正则表达式的基本用法,可以让你轻松应对文本查找、替换、验证等常见任务。多练习、多尝试,你很快就能熟练使用这个强大的工具。