网站建设与制作区别,网站建设倒计时代码,做棋盘游戏辅助的网站,抖音开放平台申请目录 一、正则表达式 二、正则表达式的三个基础方法 1.match 从头匹配 2.search#xff08;匹配规则#xff0c;被匹配字符串#xff09; 3.findall#xff08;匹配规则#xff0c;被匹配字符串#xff09; 三、元字符匹配 单字符匹配#xff1a; 注#xff1a; 示例匹配规则被匹配字符串 3.findall匹配规则被匹配字符串 三、元字符匹配 单字符匹配 注 示例 找出特殊字符 找出全部的英文字母 找出单词字符 数量匹配 边界匹配 分组匹配 案例 注 我们终将上岸阳光万里 —— 24.11.15 一、正则表达式
正则表达式又称规则表达式(Regular Expression)是使用单个字符串来描述、匹配某个句法规则的字符串常被用来检索、替换那些符合某个模式(规则)的文本。
简单来说正则表达式就是使用字符串定义规则并通过规则去验证字符串是否匹配
比如验证一个字符串是否是符合条件的电子邮箱地址只需要配置好正则规则即可匹配任意邮箱。比如通过正则规则(^[\w-](\.[\w-])*[\w-](\.[\w-])$)即可匹配一个字符串是否是标准邮箱格式
但如果不使用正则使用if else来对字符串做判断就非常困难了: 二、正则表达式的三个基础方法
Python正则表达式使用re模块并基于re模块中三个基础方法来做正则匹配。
分别是match、search、findall三个基础方法
re.match(匹配规则被匹配字符串)
从被匹配字符串开头进行匹配匹配成功返回匹配对象包含匹配的信息匹配不成功返回空
1.match 从头匹配
import res 一切都会好的# match 从头匹配
res1 re.match(一切, s)
print(res1) 2.search匹配规则被匹配字符串
搜索整个字符串,找出匹配的。从前向后找到第一个后就停止不会继续向后
import res 一切都会好的# search 从头到尾进行搜索
res2 re.search(都会好, s)
print(res2) 3.findall匹配规则被匹配字符串
匹配整个字符串找出全部匹配项
找不到返回空list[]
import re# findall 找出全部匹配项
s 一切都会好的我一直相信
res3 re.findall(一, s)
print(res3) 三、元字符匹配
在刚刚我们只是进行了基础的字符串匹配正则最强大的功能在于元字符匹配规则。
单字符匹配 注
字符串前面带上r的标记表示字符串中转义字符无效就是普通字符的意思
示例
字符串 s 一切都会好的_021104_我一直相信_YYSHlcl
找出特殊字符
import res 一切都会好的_021104_我一直相信_YYSHlclres1 re.findall(\W,s)
print(res1) 找出全部的英文字母
import res 一切都会好的_021104_我一直相信_YYSHlcl# 字符串前面带上r的标记表示字符串中转义字符无效就是普通字符的意思
# 找出所有英文字符
res2 re.findall(r[a-zA-Z],s)
print(res2)找出单词字符
import res 一切都会好的_021104_我一直相信_YYSHlcl# 字符串前面带上r的标记表示字符串中转义字符无效就是普通字符的意思
# 找出所有的单词字符
res3 re.findall(r\w,s)
print(res3)数量匹配 边界匹配 分组匹配 案例 匹配账号只能由字母和数字组成长度限制6到10位 规则为^[0-9a-zA-Z]{610}$ 匹配QQ号要求纯数字长度5-11第一位不为0 规则为^[1-9][0-9]{4,10} [1-9]匹配第一位[0-9]匹配后面4到10位 匹配邮箱地址只允许qq、163、gmail这三种邮箱地址 规则为^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-]) 注
字符串的 r 标记表示,字符串内转义字符无效,作为普通字符使用
import re
# 匹配账号只能由字母和数字组成长度限制6到10位
# 规则为^[0-9a-zA-Z]{610}$
res1 re.findall(r^[0-9a-zA-Z]{6,10}$,954926928lcl)
print(res1, res1)res2 re.findall(r^[0-9a-zA-Z]{6,10}$,954926928)
print(res2, res2)# 匹配00号,要求纯数字,长度5-11,第一位不为0
# 规则为^[1-9][0-9]{4,10}
# [1-9]匹配第一位[0-9]匹配后面4到10位
res3 re.findall(r^[1-9][0-9]{4,10}$,2952234004)
print(res3, res3)# 匹配邮箱地址只允许qq、163、gmail这三种邮箱地址
# 规则为^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])
res4 re.findall(r(^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])$),lcl163.com)
print(res4, res4)res5 re.findall(r(^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])$),2952234004qq.com)
print(res5, res5)res6 re.findall(r(^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])$),1144099341gmail.com)
print(res6, res6)# 正则表达式中若有括号分组则需要在正则表达式中加括号使正则表达式整体变为一个组
# match方法可以只输出完整的组
res7 re.match(r(^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])$),1144099341gmail.com)
print(res7,res7)