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

Python个人学习笔记(19):模块(正则表达式)

十、正则表达式

(一)基本含义

正则表达式是单独的一门语言,利用表达式的形式匹配字符串里面的内容。
最好在线写正则表达式,效率高
osChina在线正则测试

语法:
普通字符:类似abcdefg
元字符:具有特殊意义的符号(关键字)

作用:用表达式的形式来匹配字符串
只有连续的才能匹配

(二)基本元字符

元字符含义
.匹配所有除了换行符以外的其他所有东西
[ ]字符组,匹配[ ]中的内容
\w匹配所有数字、字母、下划线
\s匹配所有空白符
\d匹配所有数字
\W \S \D取反,比如匹配除了所有的空白符(了解)
[^]字符组取反
^开始
$结束
( )优先级,分组
元字符含义
.匹配所有除了换行符以外的其他所有东西

…:连续两个非换行符字符组合
a.a:a+非换行符字符+a
在Python中可以匹配换行符

元字符含义
[ ]字符组,匹配[ ]中的内容

坑:[.]只匹配.,因为[ ]内的内容都是普通字符,除了~
[a~z]:匹配所有小写字母
[0~9]:匹配所有数字
[A~Z]:匹配所有大写字母
常用于设置密码,[A~Z 0~ 9 a~z]

元字符含义
\w匹配所有数字、字母、下划线

在某些平台和条件下可以匹配中文,比如Python
可以用[A~ Z 0 ~ 9 a~z_]来防止出现匹配中文的情况

元字符含义
\s匹配所有空白符

空白符包括:空格、换行\n、回车\r、制表符\t

元字符含义
\d匹配所有数字
\W \S \D取反,比如匹配除了所有的空白符(了解)
[^]字符组取反
^开始
$结束

^是指在开始的位置是否匹配,即是否以该字符开始的
主要用于防止用户没有按规则输入,比如手机号
^\d\d\d\d\d\d\d\d\d\d\d$

元字符含义
( )优先级,分组

(三)量词

方便写代码的
描述前面的元字符出现的次数
\d{3}:三次\d
只能控制前面的字符

量词含义
+匹配一次或多次,等同于{1,}

\d+:可以表示\d\d…,很多个连续的\d

量词含义
*匹配0次或多次,等同于{0,}

\d*:\d出现零次或多次,如果不是数字,有结果但不显示。
一般用于尽可能多地匹配时

量词含义
?匹配0次或1次,等同于{0,1}

\d?:单个字符出现

量词含义
{n}固定匹配n次
{n,m}固定匹配n次到m次
{n,}固定匹配n次到无数次

\d{n}:n个数字为一组,匹配n次

\d{2,5}表示:
\d\d
\d\d\d
\d\d\d\d
\d\d\d\d\d
2次到5次

(四)贪婪匹配和惰性匹配

.* 表示提取最长的结果,即贪婪匹配
.* ?表示提取最短的结果,即惰性匹配,是一个回溯算法

例:提取json字符({name: qiaofu, age:18, hobby:“吃(喝)拉撒”})
callback xkjlkdjfkldsajklfjklas({name: qiaofu, age:18, hobby:“吃喝拉撒”})
只要括号里的内容,所以写(.*?),但是()是元字符,所以应该加\,所以为\(.?\)。但是如果()内部还有(),那么取到的结果不完整,所以应该去掉?,最后就是\(.\)

正则中,如果匹配普通字符,但是这个普通字符和元字符冲突的时候,需要用\进行转义,将元字符转义为普通字符

相关文章:

  • JVM类加载过程详解
  • 浙江大学DeepSeek公开课第二季第二期将于下周一直播!
  • 【redis】主从复制:全量复制、部分复制、实时复制详解
  • extern关键字的用法
  • 机器人的手眼标定——机器人抓取系统基础系列(五)
  • Unity Animation的其中一种运用方式
  • 【吾爱出品】【阿修】兔子vCard editor by(通讯录编辑工具)
  • 【RH124】 第五章 创建、查看文本文件
  • Android Launcher3 HotSeat文件夹创建禁止方案全解析
  • WordPress二次开发中常用到的一些变量和函数
  • 算法刷题整理合集(六)
  • 如何提升需求管理能力
  • 编辑距离算法的正确性证明
  • 计算机网络-2 物理层
  • 01_JavaScript
  • WMS WCS系统架构
  • 二叉树_二叉搜索树中的众数
  • 重生之我是八位数码管糕手
  • 使用__attribute__((at(addr))) 固定变量到指定 Flash 地址
  • 架构思维:从CAP到PACELC到BASE
  • 习近平:在庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会上的讲话
  • 报告显示2024年全球军费开支增幅达冷战后最大
  • 央行副行长:研究建立民营中小企业增信制度,破解民营中小企业信用不足等融资制约
  • AI应用大盘点:谁暴涨?谁掉队?
  • “天链”继续上新!长三乙火箭成功发射天链二号05星
  • 野猪穿过江苏电视台楼前广场,被抓捕后送往红山森林动物园