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

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.kler.cn/a/611117.html

相关文章:

  • 车载以太网网络测试 -24【SOME/IP概述】
  • 深度学习框架PyTorch——从入门到精通(10)PyTorch张量简介
  • react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析
  • 【学Rust写CAD】11 2D CAD可用rust库
  • 详细介绍sentinel的使用,并列举经常出的面试题以及答案
  • xml文件
  • PAT甲级(Advanced Level) Practice 1028 List Sorting
  • 在 Ubuntu 下通过 Docker 部署 Misskey 服务器的详细技术博客
  • Sentinel 限流利器(功能以及源码解析)
  • Java通信
  • 虚幻引擎设置复杂碰撞体
  • 《深度剖析Android 12 SystemUI锁屏通知布局亮屏流程:从源码到实现》
  • 【linux重设gitee账号密码 克隆私有仓库报错】
  • CSS text-shadow属性详解
  • 2023年网络系统管理赛项赛题第2套(样题)
  • 航天军工与金融行业 UE/UI 设计:跨越领域的体验革新之道
  • LeetCode hot 100—完全平方数
  • 基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤
  • ElementUI表格添加默认值不生效
  • VSCode 生成HTML 基本骨架