在python中使用正则表达式

正则表达式是什么?就是要寻找的数据的规律,使用正则表达式的步骤有三

第一,寻找规律,第二使用正则符号表示规律,第三,提取信息

看下面的代码

python 复制代码
import re
wenzhang = ('小草偷偷地从土里钻出来,嫩嫩的,绿绿的。园子里,田野里,瞧去,密码是:200073215,一大片一大片满是的。'
            '坐着,躺着,打两个滚,踢几脚球,赛几趟跑:27329915,一,捉几回迷藏。风轻悄悄的,草软绵绵的。')
paqumima= re.findall(':(.*),',wenzhang)
paquzhunque = re.findall(':(.*?),',wenzhang)
print(paqumima,len(paqumima))
print(paquzhunque,len(paquzhunque))

输出效果为

python 复制代码
['200073215,一大片一大片满是的。坐着,躺着,打两个滚,踢几脚球,赛几趟跑:27329915,一,捉几回迷藏。风轻悄悄的'] 1
['200073215', '27329915'] 2

相关知识:

第一行 import re

python中正则表达式的模块就是re,所以第一行先导入模块re

第二行:wenzhang=('巴拉巴拉巴巴拉拉')

就是把要提取的文本源文件赋值给一个叫wenzhang的变量,当然这个变量名可以自己随便起。

第三行:paqumima= re.findall(':(.*),',wenzhang)

re是导入的模块,

点,findall是re模块中的一个方法,findall的使用格式是

re.findall('正则表达式',这是里源文本变量)

'正则表达式'的格式是

'要爬取文字前面的字符(.*)要爬取文字后面的字符'

返回的值就是按正则表达式描述的内容。

这里的正则表达式是**':(.*),'**

意思就是,从源文本中找以**:开头的,以,结尾的部分,这一部分就是用(.*)**表示

其中.表示除换行符以外的任何一个字符。

*表示它前面的一个表达式0次到无限次。

但是第三行的正则表达式有个缺点就是以:开头,以最后一个,结尾,中间还爬取了好多没用的信息,所以我们用了第四行的正则表达式

第四行代码:paquzhunque = re.findall(':(.*?),',wenzhang)

除了正则表达式多了一个?外,和第三行代码一模一样,从后面输出的效果来看

正则表达式(.*?)表示每一个符合正则表达式的内容。所以后面输出的效果长度也是2,也仅仅是输出了表示密码的部分。

相关推荐
chenzhou__17 分钟前
MYSQL学习笔记(个人)(第十五天)
linux·数据库·笔记·学习·mysql
一只自律的鸡1 小时前
【MySQL】第二章 基本的SELECT语句
数据库·mysql
yanxing.D2 小时前
OpenCV轻松入门_面向python(第六章 阈值处理)
人工智能·python·opencv·计算机视觉
JJJJ_iii3 小时前
【机器学习01】监督学习、无监督学习、线性回归、代价函数
人工智能·笔记·python·学习·机器学习·jupyter·线性回归
Python图像识别6 小时前
71_基于深度学习的布料瑕疵检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
python·深度学习·yolo
千码君20167 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
淮北4948 小时前
windows安装minicoda
windows·python·conda
@yanyu6669 小时前
idea中配置tomcat
java·mysql·tomcat
爱喝白开水a9 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
默默coding的程序猿11 小时前
3.git的分支携带问题是什么?怎么解决?
java·git·python·svn·gitee·github·intellij-idea