Python正则表达式

基础应用

正则表达式,快速检索文本、实现一些替换文本的操作。
正则表达式由一系列普通字符和一系列元字符组成。

‘\d’ 表示0~9这是个数字,是元字符
‘\w’ 表示单词字符,即0-9,A-Z,a-z以及下划线这些字符
‘\s’ 表示空白字符
‘. ’ 表示匹配除换行符\n之外其他所有字符

import re

a = 'C0C++7Java6C#4Python8Javascript'
r = re.findall('\d',a)
print(len(r))
print(r)

输出:
在这里插入图片描述

字符集

寻找acd和asd

import re

a = 'abc,acd,aks,asd,wed,asd'
r = re.findall('a[cs]d',a)
print(len(r))
print(r)

输出:
在这里插入图片描述
从c到h的字母可以用c-h

可以使用{n}来表示数量集趋向于尽可能匹配长字符串,是贪婪的

import re
a = 'abc,acd1 d32,132132aaksdd,132asd,wed,aSd'
r = re.findall('[a-z]{3,6}',a)
print(r)

输出:
在这里插入图片描述
非贪婪应使用:

'[a-z]{3,6}?'
数量词

加*号,表示字符串最后一个字母匹配0次到无限多次
加+号,表示字符串最后一个字母匹配1次到无限多次
加?号,表示字符串最后一个字母匹配0次或1次

import re
a = 'pytho0python1pythonn2'
r = re.findall('python*',a)
print(r)

输出:
在这里插入图片描述

边界匹配

^表示从开头第一个字符开始匹配,$表示从字符串最后开始匹配

import re
a = '1234567'
r = re.findall('^\d{3,7}$',a)
print(r)

输出:
在这里插入图片描述

匹配模式

re.I忽略大小写
re.S允许 ’.‘ 匹配所有字符包括换行符\n

r = re.findall('\s', str, re.I)
函数
re.sub
import re
a = 'PythonC#JavaC#PHPC#'

def convert(value):
	matched = value.group()
	return '!!' + matched + '!!'
r = re.sub('C#',convert,a)
print(r)

输出:
在这里插入图片描述

re.match和re.search

re.search会搜素整个字符串,一旦找到结果就会返回结果
re.match从首字母开始匹配,如果首字母满足就返回结果

import re
a = 'BB5ASD5S8SD4C'
r = re.match('\d',a)
print(r)
r1 = re.search('\d',a)
print(r1)

输出:
在这里插入图片描述
如果找到,输出都为一个对象

使用r.span()和r.group()来获取span值和match值
import re
a = 'life is short, i use python'
r = re.search('life(.*)python',a)
print(r.group(1))
r1 = re.findall('life(.*)python',a)
print(r1)

输出:
在这里插入图片描述
group的使用:

import re
a = 'life is short, i use python, because i love python'
r = re.search('life(.*)python,(.*)python',a)
print(r.group(0))
print(r.group(1))
print(r.group(2))
print(r.groups())

输出:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值