当前位置: 首页 > article >正文

34.正则表达式

python正则表达式,使用re模块,模块中三个基础方法来做正则匹配。

match

re.match(匹配规则, 被匹配的字符串)

从字符串开头进行匹配,匹配成功返回匹配对象(包含匹配的信息),匹配不成功返回空。

注意只会匹配开头,如果开头不匹配就直接返回None了。

import re
aa = "python is a good language, I am learning python"
res = re.match("python", aa)
# <_sre.SRE_Match object; span=(0, 6), match='python'>
print(res)
# (0, 6) 匹配到字符串的下标
print(res.span())
# python
print(res.group())

bb = "1python is a good language, I am learning python"
ress = re.match("python", bb)
# None  match方法只是匹配开头,如果一开始就不匹配就直接返回None,不会继续后续匹配
print(ress)

search

搜索整个字符串,找出匹配的。找到第一个后就停止,不会继续向后。

整个字符串都找不到,返回None。

import re
aa = "java is a good language, I am learning python"
res = re.search("python", aa)
# <_sre.SRE_Match object; span=(39, 45), match='python'>
print(res)
# (39, 45)
print(res.span())
# python
print(res.group())

findall

匹配整个字符串,找出全部匹配项。

找不到就会返回一个[] 空list。

import re
aa = "python is a good language, I am learning python"
res = re.findall("python", aa)
# ['python', 'python']
print(res)

元字符匹配

import re
aa = "tallor@@python2!!666##itaa3"
# 字符串r标记,表示当前字符串是原始字符串,即内部的转义字符无效,而是普通字符
res = re.findall(r'\d', aa)
# ['2', '6', '6', '6', '3']
print(res)
# 找出所有的特殊字符
res = re.findall(r'\W', aa)
# ['@', '@', '!', '!', '#', '#']
print(res)
# 找出所有的字母
res = re.findall(r'[a-zA-Z]', aa)
# ['t', 'a', 'l', 'l', 'o', 'r', 'p', 'y', 't', 'h', 'o', 'n', 'i', 't', 'a', 'a']
print(res)

 案例:匹配只能有数字和字母组成,长度限制6-10位

import re
r = "^[0-9a-zA-Z]{6,10}$"
s = '123456'
# ['123456']
print(re.findall(r, s))

这里特别注意:r 正则表达式不能有空格。不然匹配会失败。

案例:匹配qq号,要求纯数字,长度5-11,第一位不为0

import re
r = "^[1-9]\d{4,10}$"
s = '123456'
# ['123456']
print(re.findall(r, s))

案例:邮箱验证

import re
r = "^([\w-]+(\.[\w-]+)*@(qq|163|gmail)(\.[\w-]+)+)$"
s = 'aa@qq.comx'
# [('aa@qq.comx', '', 'qq', '.comx')]
print(re.findall(r, s))

http://www.kler.cn/a/453092.html

相关文章:

  • JS 异步 ( 一、异步概念、Web worker 基本使用 )
  • feign验签不通过,但是postman没问题
  • scala基础学习_运算符
  • 深度学习在自动驾驶车辆车道检测中的应用
  • 操作002:HelloWorld
  • 网络工程师常用软件之PING测试工具
  • 打包springBoot程序为exe(案例教程)
  • 每天40分玩转Django:实操在线商城
  • Spring Task的使用
  • 小程序canvas画环形百分比进度图
  • uni-app:监听页面返回,禁用返回操作
  • 【数据库初阶】数据库基础知识
  • 无人零售及开源 AI 智能名片 S2B2C 商城小程序的深度剖析
  • 怎么学习数据结构与算法?
  • 【前端实现pdf导出】
  • GESP202309 二级【小杨的 X 字矩阵】题解(AC)
  • 【大语言模型】ACL2024论文-35 WAV2GLOSS:从语音生成插值注解文本
  • Android使用辅助服务AccessibilityService实现自动化任务
  • 力扣11. 盛最多水的容器
  • 【Pytorch实用教程】PyTorch 自带的数据集全面解读
  • 消息队列(一)消息队列的工作流程
  • 地理数据库Telepg面试内容整理-基础技术栈
  • 重温设计模式----装饰模式
  • SSE(Server-Sent Events)返回n ,前端接收数据时被错误的截断【如何避免SSE消息中的换行符或回车符被解释为事件消息的结束】
  • Halcon 的标定
  • 如何识别钓鱼邮件和诈骗网站?(附网络安全意识培训PPT资料)