首页 > 编程语言 >Python 从入门到实战16(正则表达式语法)

Python 从入门到实战16(正则表达式语法)

时间:2024-09-13 19:49:29浏览次数:13  
标签:字符 匹配 16 Python 字母 gle 正则表达式 字符串

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

上篇文章我们通过举例学习了字符串一些操作说明。今天讨论一下正则表达式的语法。也是经常会用到的。

1、正则表达式简介

正则表达式:regular expression ,简称:regex 或者RE,又称规则表达式,它不是某种语言所特有的。

在处理字符串时,经常会涉及查找符合某些复杂规则的字符串,正则表达式就是描述这些规则的工具。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

2、行定位符

行定位符用来描述字符串的边界。“^”表示行的开始,“$”表示行的结尾。

如: ^tm

表示:要匹配的字符串tm开头,如tm1234  可以匹配,若是TOtm123就不匹配

如:tm$   表示以tm结尾

3、元字符说明

上面所讲到的“^”和“$”就属于元字符,还有其它:

元字符

说明

元字符

说明

.

匹配除换行符以外的任意字符

\b

匹配单词的的开始或者结束

\w

匹配字母、数字、下划线或汉字

^

匹配字符串的开始

\s

匹配任意的空白符

$

匹配字符串的结束

\d

匹配数字

举个例子: \bbaidu\w*\b  ,这里是匹配以字母baidu开头的字母,然后\w 为任意的字母或者数字、或者汉字等,*这里指任意数量,就是限定符

4、限定符的说明

上面的例子\w*  是匹配任意数量的数字或者字母。若是想匹配特定说了的数字,该如何表示呢?如匹配10位的qq 号:  ^\d{10}$

下面列出常用的限定符:

限定符

说明

举例

匹配前面的字符0次或者一次

 your? 表达式匹配your ,也匹配youa

+

匹配前面的字符1次或者多次

go+gle 匹配gogle 到goo…gle

*

匹配前面的字符0次或者多次

go*gle 匹配ggle 到goo…gle

{n}

匹配前面的字符n次

go{2}gle 只匹配google

{n,}

匹配前面的字符n次或以上

go{2}gle 匹配google 到goo…gle

{n,m}

匹配前面的字符n次d到m次

go{2,4}gle匹配google 、gooogle、goooogle

5、字符类的匹配

没有预定义元字符的字符集合如何进行匹配呢?如含有某些特定的字母如元音字母:a\e\i\o\u,可以直接用方括号来匹配,如[]a,e,I,o,u]

如:[0-9]代表的含义和\d是一致的

6、排除字符

不符合某些字符可以使用[^+字母表示]

如:[^a-z A-Z] 表示排查字母的意思

7、选择字符

若是包含多个条件进行选择的逻辑,怎么书写表达式呢?可以使用|来连接

如:身份证的表达式

(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|x|X$)  即表示身份证由15个数字,或者18个纯数字,或者17个数字+x或者加X   进行匹配

8、转义字符:\

为什么要用到转义字符?如我们要使用IP地址,用正则表达式匹配127.0.0.1这样的格式。当然,我们不能直接使用“.”,因为“.”是元字符可以匹配除换行符意外的任意字符。

需要使用转义字符“\”,正则式:

[1-9]{1-3}\.[0-9]{1-3}\.[0-9] {1-3}\.[0-9] {1-3}

9、分组

分组可以使用括号()来实现,如上面的匹配127.0.0.1的例子

[1-9]{1-3}\.[0-9]{1-3}\.[0-9] {1-3}\.[0-9] {1-3}

可以改写成:[1-9]{1-3}(\.[0-9]{1-3}){3}

上面的例子就达到了分组,也即是子表达式。

(\.[0-9]{1-3}){3}  :即为对分组(\.[0-9]{1-3})  重复了三次操作

10、python 中使用正则式语法

在python中使用正则表达式时,将其作为模式字符串使用的。例如,匹配一个非字母字符的正则表达式转换为模式字符串:’[^a-z A-Z]’

若是匹配以p开头的单词的正则表达式转换为模式字符串,

如写成:’\bp\w*\b’  这个表达显然时不正确的,因为没有进行转义(’\\bp\\w*\\b’)。

为了避免大量的转义字符要写,python中可以写成原生字符串,即在模式字符串前加r或者R。如上面的例子:’\\bp\\w*\\b’  >写成  r’\bp\w*\b’  即可。

今天先写学习到这里了,每天进步一点点。今天也要加油啊!

标签:字符,匹配,16,Python,字母,gle,正则表达式,字符串
From: https://blog.csdn.net/weixin_45999406/article/details/142218939

相关文章

  • ubuntu20.04 | pip | python包管理工具
    前言我们在使用python的过程中,时常需要安装python库或框架来开发python应用程序,这个时候就需要用到pip命令了。最近需要使用pymodbus库,来实现modbusRTU通信,但是需要安装特定的版本号,接下来,就以pymodbus库为例,总结了一下pip的使用教程具体操作<1>查看某个python库是否......
  • Python中如何实现列表的排序
    在Python中,实现列表(List)的排序是一项基础且常用的操作。Python提供了多种方式来对列表进行排序,包括使用内置函数、方法以及自定义排序逻辑。下面将详细探讨Python中实现列表排序的多种方法,包括sort()方法、sorted()函数、以及利用lambda函数和functools.cmp_to_key()函数来自定......
  • Python中如何动态地执行代码
    在Python中,动态执行代码是一种强大的功能,它允许程序在运行时构建并执行字符串形式的代码。这种能力在多种场景下非常有用,比如开发交互式应用程序、构建代码模板、动态生成和执行函数等。Python提供了几种不同的方式来动态执行代码,包括使用exec()、eval()、compile()函数,以及通......
  • 了解 Python中的`try...except...finally`语句块是如何工作的?
    在Python中,try...except...finally语句块是一种异常处理机制,它允许程序优雅地处理运行时错误,确保即使在发生异常的情况下,程序也能执行必要的清理操作,如关闭文件、释放资源等。这种结构不仅提高了程序的健壮性,还使得错误处理更加灵活和可预测。下面,将详细探讨try...except...fin......
  • 全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback
    全网最适合入门的面向对象编程教程:47Python函数方法与接口-回调函数Callback摘要:回调函数是编程中一种非常常见的模式,用于将函数作为参数传递给其他函数或方法。这种模式在Python中广泛应用于事件处理、异步编程、函数式编程等场景。原文链接:FreakStudio的博客往......
  • A-计算机毕业设计定制:93904 家庭健康管理系统(免费领源码)可做计算机毕业设计JAVA、PHP
    摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,家庭健康管理系统被用户普遍使用,为方便用户能够可以随时进行家庭健康管理系统的数据信息管理,特开发了SSM家庭健康管理系......
  • 1688竞品分析这样做,超越电商同行,流量想不爆都难!
    竞品分析最大的意义就是知己知彼!清楚自己所在的位置,取长补短,确定下一阶段打法和方向。那么该怎么做竞品分析?我们利用店雷达1688工具进行实操讲解,分别从竞品目标、价格机制、流量结构,3个方面教你迅速做好竞品分析:一、拆解竞品目标基于目前你所在的行业产品市场认知度,是新手0-......
  • 1688电商运营到底怎么做竞品分析(超细节)
    你得学会看同行数据,因为同行是蕞好的老师。你把同行分析透,把市场分析透以后,你才能真正的做好这个类目。我们就来详细的讲一下具体该怎么去分析同行,以及要看竞品的哪些数据。一、分析市场就是先看一下你的这个产品,搜索你的大关键词,看目前综合排名以及销量排名情况通过这两个地......
  • Python网页应用开发神器Dash 2.18.1稳定版本来啦
    本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-masterGitee同步仓库地址:https://gitee.com/cnfeffery/dash-master大家好我是费老师,上周Dash发布了2.18.0新版本,并于今天发布了可稳定使用的2.18.1版本(自古.1版本最稳✌),今天的文章中就将针对2.18.1......
  • Python装饰器:一种优雅的代码增强技术
      在Python编程中,装饰器(Decorator)是一种强大且优雅的工具,它允许程序员在不修改函数或类定义的情况下,动态地添加新的功能或修改其行为。装饰器在函数式编程、Web开发、测试框架等多个领域都有广泛的应用。本文将深入探讨Python装饰器的概念、使用场景、语法特性以及如何自定......