pytho中正则表达式的应用

本文详细介绍正则表达式的常用语法及应用场景,包括手机号、邮箱的格式验证,数字范围匹配,以及复杂标签信息的提取。通过实例代码演示,帮助读者掌握正则表达式的灵活运用。

方法

result = re.match(reg,txt) ------ #根据正则表达式匹配文本
result = re.search(reg,txt) ------ #根据正则表达式找出第一个匹配项文本
result = re.findall(reg,txt) ------ #根据正则表达式找出所有匹配项文本
result = re.sub(reg,newtxt,txt)------ #根据正则表达式修改所有匹配项文本
result = re.split(reg,txt) ------ #根据正则表达式找到匹配项进行分割

匹配字符

. ------匹配任意一个字符,不匹配\n
[] ------匹配[]中的一项字符,中划线-表示指定范围,例如a-z
\d ------匹配0-9之间的数字
\D ------匹配非数字
\w ------匹配单词符a-z,A-Z,0-9,_
\W ------匹配非单词符
\s ------匹配空格符和\t
\S ------匹配非空格符
\b ------匹配一个单词边界
\B ------匹配非单词边界

* ------匹配前一项任意次,可有可无
? ------匹配前一下最多一次,也可以做非贪婪匹配
+ ------匹配前一项至少一次
{m} ------匹配前一项m次
{m,} ------匹配前一项至少m次
{m,n} ------匹配前一项至少m次最多n次

| ------匹配左右任意一个表达式
() ------将括号里面的字符作为一个分组
\x ------克隆正则表达式中第x个分组的表达式
?P ------给分组命名
?P= ------克隆指定名字的分组表达式

使用

1.正常匹配出手机号,11位,且第二位有具体数字(3,5,7,8)
2.正常匹配出一个@163,@qq,@126.com的电子邮箱
3.正常匹配数字范围为0-299
4.正常匹配标签信息,前后标签要一致
5.正常匹配嵌套标签的信息,嵌套标签要一致

#encoding = utf-8
import re

# 1.正常匹配出手机号,11位,且第二位有具体数字(3,5,7,8)
def regPho():
	reg = '^1[35789]\d{9}$'
	txt = '13279806654'
	result = re.match(reg,txt)
	print(result)

# 2.正常匹配出一个@163,@qq,@126.com的电子邮箱
def regEmail():
	reg = '^\w{4,20}@(qq|126|163)\.com$'
	txt = '40504@163.com'
	result = re.match(reg,txt)
	print(result)

def regText():
	reg1 = '\d+'
	reg2 = '^\d?$'
	reg3 = '\d*'
	txt = '2'
	result = re.match(reg2,txt)
	print(result)

# 3.正常匹配数字范围为0-299
def regNum():
	reg = r'^(\d|[1-9]\d|[12]\d{2})$'
	txt = '221'
	result = re.match(reg,txt)
	print(result)

# 4.正常匹配标签信息,前后标签要一致
def regEle():
	reg = r"^<(\w+)>.*<(\1)>$"
	txt = '<h1>hixx<h1>'
	result = re.match(reg,txt)
	print(result)

# 5.正常匹配嵌套标签的信息,嵌套标签要一致
def regDoubleEle():
	reg = r"^<(\w+)><(?P<we>\w+)>.*<(?P=we)><(\1)>$"
	txt = '<html><h1>hixx<h1><html>'
	result = re.match(reg,txt)
	print(result)

def main():
	regDoubleEle()

if __name__ == '__main__':
	main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值