IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 正则表达式 -> 正文阅读

[Python知识库]正则表达式

一.什么是正则:

1.根据指定规则从字符串中提取子字符串

2.指定规则:正则表达式

3.字符串:待匹配字符串

子字符串:匹配结果

4.注意:正则并不是python独有的,各种语言都可以使用正则

二.正则表达式应用场景

1.表单验证(手机号验证,账号验证,密码验证)

2.爬虫

3.其他

正则表达式的语法:

1.元字符:可以匹配一个的符号

  • ():匹配任意字符,换行除外\n
  • []:一个特殊的的字符组如下:
    • [a-z]:a到z的任意小写字母
    • [A-Z]:A到Z的任意大写字母
    • [0-9]:0到9的任意数字
  • \d:匹配任意数字
  • \D:匹配非数字
  • \s:匹配空白符
  • \S:pp非空白符
  • \w:匹配数字字母下划线
  • \W:匹配非数字字母下划线
  • ^:以什么开头
  • $:以什么结果

2.量词:匹配字符的数量

  • ?*:匹配多个或无数个
  • +:匹配1个或者无数个
  • ?:匹配哟个或者无数个
  • {m}:匹配m个
  • {m,n}:匹配m个到n个
  • {m,}:最少匹配m个
  • {,n}:匹配最多n个

3.贪婪匹配和非贪婪匹配

  • 贪婪匹配是指在正则匹配的过程中尽量往多了匹配,正则表达式默认往多了匹配
  • 非贪婪匹配是指一旦满足了正则表达式,就将匹配到的作为一个结果,然后向后匹配,直到找出不满足的结果为止,换言之,就是一个字符串尽量少了匹配,非贪婪匹配就要在两次后边使用?进行修饰

4.分组与或

4.1分组

  • 分组:是在正则表达式中使用()将正则表达式的一部分括起来表示一部分
  • 作用:
    • 改变优先级
    • 分组引用
    • 分组捕获

4.2或的使用

  • 或:用"|"分割的正则表达式,代表按照|两边的正则表达式进行匹配行
  • 示例:abc(\d|def)
    • 正则表达式前面的abc是固定的,必须匹配abc三个字母,abc后面()表示任意匹配,()中的\d和def分别满足表达式,比如按照上面的正则表达式对"abc789---abcdef999"的匹配结果为abc789和abcdef

5.使用re模块实现正则表达式操作

  • match():match(0用于从字符串的开始处开始进行匹配,如果在起始位置匹配成功,则返回Match对象,否则返回None,即当匹配到第一个结果后就直接返回,不再进行匹配,同理,匹配的第一个字母不符合条件时,则返回None,s语法格式如下:re.match(pattern,string,[flags])
    • 参数说明:
      • pattern:表示模式字符串,由要匹配的正则表达式转换而来
      • string:表示要匹配多的字符串
      • flags:可选的参数,表示标志位,用于控制匹方式??
    • 常用标志:
      • A或者ASCII :对于\w, \W, \b, \B, \d ,\D, \s和\S? 只进行?ASCII匹配(仅仅适用于Python 3.x)
      • I 或者IGNORECASE :执行不区分字母大小写的匹配
      • S或DOTALL:使用(.)字符怕所有字符,包括换行符
      • X或VERBOSE:忽略模式字符串中未转义的空格和注释
      • 例如:匹配字符串是否以“mr_”开头,不区分字母大小写,代码如下? ??
import re                               
pattern = r'mr_\w+'                    # 模式字符串
string = 'MR_SHOP mr_shop'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不区分大小写
print(match)                           # 输出匹配结果

string = '项目名称MR_SHOP mr_shop'
match = re.match(pattern,string,re.I)  # 匹配字符串,不区分大小写
print(match)                           # 输出匹配结果


执行结果如下:
<_sre.SRE_Match object; span(0,7),match='MR_SHOP'>           # span为匹配的起始位置

None
  • ?search()方法用于再整个字符串中搜索第一个匹配的值,如果匹配成功,则返回match对象,否则返回None,search()方法不仅仅是再字符串的起始位置搜索,如其他位置有符合的匹配也可以进行搜索,search()方法的语法格式如下:re.search(pattern,string,[flags])
    • 参数说明:
      • pattern:表示模式字符串,有要匹配的正则表达式转化而来
      • string:表示要匹配的字符串
      • flags;可选参数,表示标志位,用于控制匹配方式
    • 例子:搜索一个以“mr_”开头的字符串,不区分字母大小写:
import re                               
pattern = r'mr_\w+'                    # 模式字符串
string = 'MR_SHOP mr_shop'             # 要匹配的字符串
match = re.match(pattern,string,re.I)  # 匹配字符串,不区分大小写
print(match)                           # 输出匹配结果

string = '项目名称MR_SHOP mr_shop'
match = re.match(pattern,string,re.I)  # 匹配字符串,不区分大小写
print(match)                           # 输出匹配结果


执行结果如下:

<_sre.SRE_MATCH object;span(0,7),match='MR_SHOP'>
<_sre.SRE_MATCH object;span(4,11),match='MR_SHOP'>     # span为匹配的起始位置

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:06:03  更:2021-09-06 11:07:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:44:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码