Python教程--正则表达式

一、前言

我们在代码的编写过程中,经常会匹配各种各样的字符串,这时我们使用正则表达式,就可以进行模糊匹配,以查找我们想要的结果

二、正则语法和使用

1、基本语法

模式描述
.匹配任意字符(不包括换行符)
^匹配开始位置,多行模式下匹配每一行的开始
$匹配结束位置,多行模式下匹配每一行的结束
*匹配前一个元字符0到多次


我这里只是列举了一小部分,大家若是想了解完整的,可以去Python官方文档去看,这里只教大家如何使用

2、正则匹配的基本使用

要使用正则匹配的话,则离不开Python的一个内置模块,re模块,它有所有的正则表达式功能,我们来了解一下常用的几种方法

2.1、match方法

匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败

import re

line = "Hello, World"

matchObj = re.match('.', line) #  匹配一个任意字符,第一个字符则匹配到H

print(matchObj.group()) #  表示匹配到的完整文本字符

matchObj = re.match('.*', line) #  匹配多次任意字符,所以匹配到Hello, World

print(matchObj.group()) #  表示匹配到的完整文本字符

matchObj = re.match('l', line) #  在开头未能匹配到l

print(matchObj) #  输出None

结果:	H
		Hello, World
		None

2.2、search方法

扫描整个字符串并返回第一个成功的匹配

import re

line = "Hello, World"

searchObj = re.search('.', line) #  匹配一个任意字符,第一个字符则匹配到H

print(searchObj.group())

searchObj = re.search('.*', line) #  匹配多次任意字符,所以匹配到Hello, World

print(searchObj.group())

searchObj = re.search('l', line) #  字符串中存在l,所以在扫描整个字符串时,是能够匹配到的

print(searchObj.group())

结果:	H
		Hello, World
		l

2.3、compile方法

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供其他函数使用。

import re
pattern = re.compile('.') #  正则表达式为匹配任意一个字符,然后返回一个对象并赋值给pattern 
m = pattern.match('Hello, World') #  使用match方法进行匹配
s = pattern.search('Hello, World') #  使用search方法进行匹配
print(m.group())
print(s.group())

结果:	H
		H

2.4、findall方法

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。 match 和 search 是匹配一次 ,但findall 是匹配所有。

import re

pattern = re.compile(r'.')  # 查找任意字符
result1 = pattern.findall('Hello, World') #  查找任意字符并返回符合条件的列表集合
result2 = pattern.findall('Hello, World', 5, 7) #  从字符串的第5个字符开始,第7个字符结束,查找任意字符并返回符合条件的列表集合

print(result1)
print(result2)

结果:	['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd']
		[',', ' ']

三、总结

本章教大家如何使用re模块进行正则的基本匹配,正则表达式完整使用起来,还是很复杂的,表达式稍不注意就会导致匹配错误甚至是无法匹配的结果,所以大家还是要多加练习

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值