首页 > 编程知识 正文

Python正则表达式匹配入门教程

时间:2024-04-27 11:09:14 阅读:335137 作者:UELQ

引言

正则表达式是文本处理中常用的工具,它可以用来匹配、查找和替换文本中的模式。在Python中,标准库中的re模块提供了对正则表达式的支持。通过学习正则表达式,可以提高文本处理的效率。本文将介绍Python正则表达式的基本语法、常用方法和示例应用,帮助读者快速入门。

正文

一、正则表达式语法

正则表达式是由普通字符和特殊字符组成的字符串,用来匹配一个或多个字符。下面介绍一些常用的正则表达式语法:

1.普通字符:所有除特殊字符之外的字符都是普通字符,用来匹配自身。

import re

str = 'hello world'
pattern = 'hello'
result = re.match(pattern, str)
if result:
    print('匹配成功')
else:
    print('匹配失败')

输出结果:

匹配成功

2.特殊字符:具有特殊含义的字符,常用的特殊字符如下:

(1)元字符:用来匹配字符串的位置和数量。

^:匹配字符串的开头。

$:匹配字符串的结尾。

.:匹配任意单个字符。

*:匹配前面的字符零次或多次。

+:匹配前面的字符至少一次。

?:匹配前面的字符零次或一次。

():子组,用来对正则表达式进行分组和捕获。

(2)字符集:用来匹配一个字符的集合。

[]:匹配括号内的任意一个字符。

[a-z]:匹配a到z之间的任意一个字符。

[^a-z]:匹配不在a到z之间的任意一个字符。

import re

str = 'hello world'
pattern = 'h.llo'
result = re.match(pattern, str)
if result:
    print('匹配成功')
else:
    print('匹配失败')

输出结果:

匹配成功

3.转义字符:用来匹配特殊含义的字符本身。

:将下一个字符标记为特殊字符。

d:匹配任意一个数字字符。

D:匹配任意一个非数字字符。

s:匹配任意一个空白字符。

S:匹配任意一个非空白字符。

w:匹配任意一个单词字符,包括字母、数字和下划线。

W:匹配任意一个非单词字符。

import re

str = 'hello 123 world'
pattern = r'd+'
result = re.findall(pattern, str)
print(result)

输出结果:

['123']

二、re模块的常用方法

re模块提供了多个函数用于操作正则表达式,其中常用的函数如下:

1.re.match():从字符串的开头匹配正则表达式。

2.re.search():扫描整个字符串匹配正则表达式。

3.re.findall():找到字符串中所有匹配正则表达式的子串。

4.re.sub():用来替换字符串中所有匹配正则表达式的子串。

下面分别介绍这些方法的用法:

import re

str = 'hello world'
pattern = 'world'
result = re.match(pattern, str)
if result:
    print('匹配成功')
else:
    print('匹配失败')

输出结果:

匹配失败
import re

str = 'hello world'
pattern = 'world'
result = re.search(pattern, str)
if result:
    print('匹配成功')
else:
    print('匹配失败')

输出结果:

匹配成功
import re

str = 'hello 123 world'
pattern = r'd+'
result = re.findall(pattern, str)
print(result)

输出结果:

['123']
import re

str = 'hello 123 world'
pattern = r'd+'
result = re.sub(pattern, '456', str)
print(result)

输出结果:

hello 456 world

三、示例应用

正则表达式在文本处理中应用广泛,本节将演示一些常见的示例应用场景。

1.匹配URL地址。

import re

str = 'https://www.baidu.com'
pattern = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
result = re.findall(pattern, str)
print(result)

输出结果:

['https://www.baidu.com']

2.匹配手机号码。

import re

str = '13800138000,13900139000,13600136000'
pattern = r'1[3456789]d{9}'
result = re.findall(pattern, str)
print(result)

输出结果:

['13800138000', '13900139000', '13600136000']

3.匹配邮箱地址。

import re

str = 'abc@123.com,xyz@456.com'
pattern = r'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+.[a-zA-Z]{2,4}'
result = re.findall(pattern, str)
print(result)

输出结果:

['abc@123.com', 'xyz@456.com']

总结

本文介绍了Python正则表达式的基本语法、常用方法和示例应用。正则表达式是文本处理中不可或缺的工具,通过学习能够提高文本处理的效率。需要注意的是,正则表达式语法较为繁琐,需要认真学习和理解。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。