我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中正则表达式的知识点有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中正则表达式的知识点有哪些

这篇文章主要介绍了Python中正则表达式的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中正则表达式的知识点有哪些文章都会有所收获,下面我们一起来看看吧。

Python中正则表达式的知识点有哪些

1.1正则表达式

正则表达式(Regular Expression)是一段字符串,它可以表示一段有规律的信息。Python自带一个正则表达式模块,通过这个模块可以查找、提取、替换一段有规律的信息。在一万个人里面找一个人很困难,但是在一万个人里面找一个非常“有特点”的人却很容易。假设有一个人,皮肤是绿色的,身高三米,那么即使这个人混在一万人中,其他人也能一眼找到他。这个“寻找”的过程,在正则表达式中叫作“匹配”。在程序开发中,要让计算机程序从一大段文本中找到需要的内容,就可以使用正则表达式来实现。使用正则表达式有如下步骤。
(1)寻找规律。
(2)使用正则符号表示规律。
(3)提取信息。

1.2正则表达式的基本符号

1.2.1 点号 “ . ”

一个点号可以代替除了换行符以外的任何一个字符,包括但不限于英文字母、数字、汉字、英文标点符号和中文标点符号。

1.2.2 星号 “ * ”

一个星号可以表示它前面的一个子表达式普通字符、另一个或几个正则表达式符号)0次到无限次。

Python中正则表达式的知识点有哪些
如上均可以:(星号表示的是前面的一个表达式)
Python中正则表达式的知识点有哪些

1.2.3 点号+星号 “ .* ”

点号表示任意非换行符的字符,星号表示匹配它前面的字符0次或者任意多次。所以“.*”表示匹配一串任意长度的字符串任意次。
Python中正则表达式的知识点有哪些
如上均可以:
它表示在“如”和“哈”中间出现“任意多个除了换行符以外的任意字符”。
Python中正则表达式的知识点有哪些

1.2.4 问号“ ? ”

问号表示它前面的子表达式0次或者1次。注意,这里的问号是英文问号Python中正则表达式的知识点有哪些
如上均可以:Python中正则表达式的知识点有哪些

1.2.5 点号+星号+问号“ .*?” (最常用)

结合后用法:
Python中正则表达式的知识点有哪些
如上均可以:
Python中正则表达式的知识点有哪些
注:“ .*?” 与“ .* ”的区别
.*?的意思就是匹配一个能满足要求的最短字符串。
一句话总结如下。
①“.*”:贪婪模式,获取最长的满足条件的字符串。
②“.*? ”:非贪婪模式,获取最短的能满足条件的字符串。

1.2.6 小括号“()”

从一段字符串中“提取”出一部分的内容.
有如下一个字符串:
Python中正则表达式的知识点有哪些
可以看出,这里的密码左边有一个英文冒号,右边有一个汉字“你”。当构造一个正则表达式:.*?你时,得到的结果将会是:
Python中正则表达式的知识点有哪些
然而,冒号和汉字“你”并不是密码的一部分,如果只想要“12345abcde”,就需要使用括号:
Python中正则表达式的知识点有哪些
得到:
Python中正则表达式的知识点有哪些

1.2.7 反斜杠 “ \ ”

在正则表达式里面,很多符号都是有特殊意义的,例如问号、星号、大括号、中括号和小括号。反斜杠需要和其他的字符配合使用来把特殊符号变成普通符号,把普通符号变成特殊符号。
Python中正则表达式的知识点有哪些

1.2.8 数字 “ \d”

正则表达式里面使用“\d”来表示一位数字。
如果要提取两个数字,可以使用\d\d;如果要提取3个数字,可以使用\d\d\d。但是如果不知道这个数有多少位怎么办呢?就需要用*号来表示一个任意位数的数字。

Python中正则表达式的知识点有哪些
全部都可以使用下面这个正则表达式来表示:
Python中正则表达式的知识点有哪些

1.3 使用正则表达式

Python的正则表达式模块名字为“re”,也就是“regular expression”的首字母缩写。在Python中需要首先导入这个模块再进行使用。导入的语句为:

import re

1.3.1 findall 方法

Python的正则表达式模块包含一个findall方法,它能够以列表的形式返回所有满足要求的字符串。
findall的函数原型为:

re.findall(pattern,string,flags=0)

pattern表示正则表达式,string表示原来的字符串,flags表示一些特殊功能的标志。findall的结果是一个列表,包含了所有的匹配到的结果。如果没有匹配到结果,就会返回空列表。

当需要提取某些内容的时候,使用小括号将这些内容括起来,这样才不会得到不相干的信息。如果包含多个“(.*? )”怎么返回呢?如图3-2所示,返回的仍然是一个列表,但是列表里面的元素变为了元组,元组里面的第1个元素是账号,第2个元素为密码。
Python中正则表达式的知识点有哪些

函数原型中有一个flags参数。这个参数是可以省略的。当不省略的时候,具有一些辅助功能,例如忽略大小写、忽略换行符等。
这里以忽略换行符为例来进行说明要忽略换行符,就需要使用到“re.S”这个flag。Python中正则表达式的知识点有哪些
虽然说匹配到的结果中出现了“\n”这个符号,不过总比什么都得不到强。内容里面的换行符在后期清洗数据的时候把它替换掉即可。

1.3.2 search 方法

search()的用法和findall()的用法一样,但是search()只会返回第1个满足要求的字符串。一旦找到符合要求的内容,它就会停止查找。对于从超级大的文本里面只找第1个数据特别有用,可以大大提高程序的运行效率。

search()的函数原型为:Python中正则表达式的知识点有哪些
对于结果,如果匹配成功,则是一个正则表达式的对象;如果没有匹配到任何数据,就是None。

如果需要得到匹配到的结果,则需要通过.group()这个方法来获取里面的值。
Python中正则表达式的知识点有哪些
只有在.group()里面的参数为1的时候,才会把正则表达式里面的括号中的结果打印出来。

.group()的参数最大不能超过正则表达式里面括号的个数。参数为1表示读取第1个括号中的内容,参数为2表示读取第2个括号中的内容,以此类推。
(注意图里的不是findall)
Python中正则表达式的知识点有哪些

1.3.3 compile 方法

re.findall()自带re.compile()的功能,所以没有必要使用re.compile()。

1.4 正则表达式的提取技巧

1.4.1 先抓大后抓小:二次提取

Python中正则表达式的知识点有哪些

1.4.2 括号里括号外

括号内可以有其他字符。
具体影响见下图。
Python中正则表达式的知识点有哪些
如果括号里面有其他普通字符,那么这些普通字符就会出现在获取的结果里面。

关于“Python中正则表达式的知识点有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python中正则表达式的知识点有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中正则表达式的知识点有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中正则表达式的知识点有哪些

这篇文章主要介绍了Python中正则表达式的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中正则表达式的知识点有哪些文章都会有所收获,下面我们一起来看看吧。1.1正则表达式正则表达式(R
2023-06-30

java正则表达式的知识点有哪些

这篇文章主要介绍“java正则表达式的知识点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java正则表达式的知识点有哪些”文章能帮助大家解决问题。字符x字符 x\\反斜线字符\0n带有八进制
2023-06-29

C#正则表达式的知识点有哪些

这篇“C#正则表达式的知识点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#正则表达式的知识点有哪些”文章吧。一、简
2023-06-30

python正则表达式常见的知识点有哪些

本篇内容主要讲解“python正则表达式常见的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python正则表达式常见的知识点有哪些”吧!一、介绍正则表达式是一个特殊的字符序列,计算
2023-06-30

正则表达式基础知识点有哪些

这篇“正则表达式基础知识点有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“正则表达式基础知识点有哪些”文章吧。正则表达式
2023-07-05

正则表达式入门知识点有哪些

这篇文章主要为大家展示了“正则表达式入门知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“正则表达式入门知识点有哪些”这篇文章吧。1.正则表达式入门之什么是正则表达式基本说来,正则表达式
2023-06-17

python正则表达式相关知识有哪些

这篇文章主要为大家展示了“python正则表达式相关知识有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python正则表达式相关知识有哪些”这篇文章吧。正则表达式模块Python 有一个名
2023-06-29

Python正则表达式基础知识有哪些

本篇内容主要讲解“Python正则表达式基础知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python正则表达式基础知识有哪些”吧!1. 什么是正则表达式正则表达式(Regular E
2023-06-21

Python中的正则表达式有哪些

这篇文章给大家介绍Python中的正则表达式有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是正则表达式?正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模式(规则)的文本。此
2023-06-08

Python正则表达式有哪些

小编给大家分享一下Python正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 前言正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字
2023-06-15

python中有哪些正则表达式语法

python中有哪些正则表达式语法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth
2023-06-14

Python正则入门知识点有哪些

今天小编给大家分享一下Python正则入门知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、单字符匹配1、匹配某
2023-06-27

C++中正则表达式有哪些

这篇文章主要讲解了“C++中正则表达式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中正则表达式有哪些”吧!1、C regex/* write by xingming *
2023-06-17

完整的正则表达式知识汇总(Python知

## 大纲:## 一、正则概述 1.正则是什么正则就是一套规则,或者语法2.正则的作用让我们判断是否符合我们的的规则,或者根据规则找到符合规则的数据3.使用场景可以用正则判断我们输入的邮箱是否合法可以用正则去获取整个网页的照片4.适合语言所
2023-01-30

Python正则表达式技巧有哪些

本篇内容介绍了“Python正则表达式技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是Python则表达式在编写处理字符串
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录