正则表达式和re模块

正则表达式(Regular Expression,简称Regex或RegExp)是计算机科学中的一个重要概念,它通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,通过事先定义好的一些特定字符以及这些特定字符的组合,来组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

正则表达式的语法和规则因不同的编程语言和工具而异,但大多数都遵循一些基本的语法和规则。以下是一些常见的正则表达式语法和规则:

字符匹配.匹配除换行符以外的任意字符。

位置匹配^匹配输入字符串的开始位置,$匹配输入字符串的结束位置。

数量词*表示匹配前面的元素零次或多次,+表示匹配前面的元素一次或多次,?表示匹配前面的元素零次或一次。

字符集[]定义字符集,匹配括号内的任意一个字符。

预定义字符类 :如\d\w\s等,用于匹配特定类型的字符。

分组和引用 :使用圆括号()进行分组,可以将表达式组合为一个子表达式,并可以在后续操作中引用这个子表达式的匹配结果。

re模块

Python 中的 re 模块(Regular Expression 模块)是一个标准库,用于支持正则表达式。正则表达式是一种文本模式,用于匹配字符串中字符组合的模式。它可以帮助你搜索、编辑或操作文本和数据,以实现复杂的文本处理任务。

引入re模块

复制代码
import re

re 模块提供了一系列函数和方法来处理正则表达式。以下是一些常用的:

match方法

尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。

复制代码
# 导入re模块
import re

# 设置正则表达式匹配规则
pattern = re.compile(r'\d+')

# 匹配的目标文本,没有匹配到,则终止匹配,由于字母o不是数字,因此,无匹配数据
m1 = pattern.match('one123two456three789')
print(m1)

# 参数1:匹配的起始位置,下表数包含
# 参数2:匹配的结束位置,下标数不包含
m1 = pattern.match('one123two456three789', 3, 6)
print(m1.group())  # 通过group查看匹配的数据

search方法

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

复制代码
import re

pattern = re.compile(r'\d+')

# 它是一次匹配,只要找到了一个匹配的结果就返回,不是查找所有匹配的结果
m1 = pattern.search('one123two456three789')
print(m1.group())

findall方法

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

复制代码
import re

pattern = re.compile(r'[a-z]+')
# findall 方法用于搜索整个字符串,获得所有匹配的结果
result = pattern.findall('hello 123 world 456')
print(result)

spilt方法

通过正则表达式将字符串分割为一个列表。

复制代码
import re

str = 'a,b,c'
print(str.split(','))

str1 = 'a,b;; c,d'
pattern = re.compile('[\s\,\;]+')
print(pattern.split(str1))

sub方法

替换字符串中所有匹配正则表达式的子串。

复制代码
import re

string = '<h1 class="test">helloWorld</h1>'
pattern = re.compile(r'\d')

# 参数1:替换后的值   参数2:原值
print(pattern.sub('2',string))

# 参数3:替换几个
print(pattern.sub('2',string,2))

# 分组
string = '<h1 class="test">helloWorld</h1>'

# P<classname>为组声明名字,可以通过名字调用该组
pattern = re.compile(r'<(.\d)\sclass="(?P<classname>.*?)">.*?</(.1)>')
print(pattern.search(string).group(1))
print(pattern.search(string).group(2))
print(pattern.search(string).group(3))

compile

编译一个正则表达式模式,返回一个正则表达式的匹配对象,通过它可以使用匹配对象的方法。

相关推荐
壹号用户10 小时前
python学习之正则表达式
python·学习·正则表达式
xiaozaq16 小时前
java 正则表达式 所有的优先级
java·开发语言·正则表达式
ColderYY17 小时前
Python中的正则表达式
开发语言·python·正则表达式
李宥小哥17 小时前
正则表达式详解
正则表达式
珊瑚礁的猪猪侠3 天前
正则表达式入门到精通教程(Linux实操版)
linux·人工智能·正则表达式
!win !5 天前
分享二个实用正则
javascript·正则表达式
xw55 天前
分享二个实用正则
javascript·正则表达式
刺客-Andy5 天前
Python 第二十节 正则表达式使用详解及注意事项
python·mysql·正则表达式
好好好起个名真难6 天前
正则表达式
正则表达式
坚持就完事了6 天前
正则表达式与Python的re模块
python·正则表达式