当前位置: 首页 > 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:“吃喝拉撒”})
只要括号里的内容,所以写(.*?),但是()是元字符,所以应该加\,所以为\(.?\)。但是如果()内部还有(),那么取到的结果不完整,所以应该去掉?,最后就是\(.\)

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


http://www.mrgr.cn/news/95667.html

相关文章:

  • 【MySQL】内置函数
  • Linux安装Ollama+MaxKB建立本地知识库
  • 全息教学系统的软件开发,沉浸式数字沙盘展示系统如何改变历史教学
  • LangChain组件Tools/Toolkits详解(6)——特殊类型注解Annotations
  • 风控笔记4——市场风险管理
  • (UI自动化测试web端)第二篇:元素定位的方法_class定位
  • DigitalFoto公司如何用日事清流程管理工具实现任务优先级与状态可视化?
  • Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode
  • Blender导出fbx到Unity找不到贴图的问题
  • C++面试题总结
  • 【NLP 42、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】
  • (UI自动化测试web端)第二篇:元素定位的方法_xpath路径定位
  • Maven下载以及项目创建(笔记)
  • CSS动画
  • 51c自动驾驶~合集26
  • Linux系统管理与编程08:任务驱动综合应用
  • 深入理解Java享元模式及其线程安全实践
  • 网络安全学习-博客文序记
  • CentOS系统下安装tesseract-ocr5.x版本
  • el-select 可搜索下拉框 在ios、ipad 无法唤出键盘,造成无法输入