python学习第十四节(正则)

python2和python3都有两种字符串类型
str
bytes

re模块
find一类的函数都是精确查找。
字符串是模糊匹配

findall(pattern,string,flags)

replace函数
‘hello python‘.replace(‘p‘,‘P‘)
‘hello Python‘

a=‘sadfadf232wwewfr323rwef34534trwef‘
import re
w=re.findall(‘\d‘,‘sadfadf232wwewfr323rwef34534trwef‘)
w=re.findall(‘\d+‘,‘sadfadf232wwewfr323rwef34534trwef‘)
print(w)

re.findall 将所有符合规则的结果保存到一个列表里。
re.findall(pattern,string)
key: 元字符 (有特殊功能的字符)
通配符:
. 点 能匹配任何一个除换行符以外的符号,也就是说点能代表任何符号。
* [0,+00] 0到无穷次的范围
+ [1,+00] 1到无穷次的范围
? [0,1] 0个或1个
{} {n,m} 可以写{3,5} 3到5个 也可以写{3} 3个 ,也可以写{0,} 无穷次的意思

字符集:
[] 用法,re.findall("a[bd]c","safasdfaefsdf") 里面[bd]是或者的关系,或者是b或者是d 都显示出来
如果[]中加了标点符号,标点符号和字母是同级别的 过滤的是a,b等内容。
[] 中如果加上通配符,那么并没有通配符的意义,只是匹配相关符号内容的东西
[0-9] 只是匹配一个数字,如果需要找4位的数字,[0-9]{4}
[] 字符集中 有特殊意义的字符为: - ^ \

^ 开始匹配
$ 结尾匹配

():分组

(ad) 匹配这个组
(ad)+yuan 图中下面这个匹配的是蓝色内容,但是分组优先显示()分组内的内容,所以结果是ad

如上图所示,可以取消()的优先级,将蓝色内容打印出来,?:这个语法就是取消优先级,不光显示分组,还可以显示其他内容。

如上图,该打印出的内容为3,因为数字很多,匹配到的是yuan,但是显示分组内容3

取消分组特性

如上图,|是或的意思
如果或后面没有匹配到则显示空。

如上图,上面这种可以直接匹配出网址。

\ 转译,能将字母转译成特殊意义,也能将特殊意义的字符转移成普通字符
\d 代表0-9的任意一个字符
\w 代表任意数字或字母的字符

\. 点变成普通符号

复杂一点的

\s 取出来有个空格

search方法
找到一个对应的就不再向后匹配

match方法
只匹配开头,如果开头没有则返回None

作业

分组给组起名字,根据名字来取内容

字符集中可以用的特殊符号

|管道符

时间: 2024-10-11 12:13:27

python学习第十四节(正则)的相关文章

python学习第十五节(正则)

正则的贪婪匹配 非贪婪模式按照最小重复数取 非贪婪匹配 正则的方法 re.split 正则分割 分割次数 保留分隔符,用一个括号套住分隔符 sub 替换字符串需要三个参数,要替换的内容(正则),新内容,字符串 分开写用compile可以写一次规则然后多次匹配,好处就是方便灵活. 返回一个迭代器对象 爬虫爬豆瓣电影信息,用正则 模块 configparser功能:创建成下面类型的文件 使用方法 读操作 DEFAULT是默认信息,不需要打印,默认信息是所有段落信息的共享信息. 用上图方法判断字段是否

我的python学习--第十四天(二)

一.ansible api 在了解python的ansible api之前,先简单了解一下ansible. ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: 连接插件connection p

python学习八十四天:爬虫基础

爬虫基础 爬虫相关概念简介 什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆卖瓜的意思),但是php在实现爬虫中支持多线程和多进程方面做的不好. 2.java:可以实现爬虫.java可以非常好的处理和实现爬虫,是唯一可以与python并驾齐驱且是python的头号劲敌.但是java实现爬虫代码较为臃肿,重构成本较大. 3.c.c++:可以实现爬虫.但是

python学习笔记第四节(字符编码+文本操作+函数)

python中不存在常量这个意义只能用大写命名来说明这个赋值是个常量,实际均为变量 字符编码 内存中是unicode硬盘中是utf-8中间需要转换 python只有执行的时候才有字符编码的概念python2默认ascii码python3默认unicode 文件操作 写操作,w 没有就新建有则覆盖,a是追加 name 查看文件名encoding 查看字符编码 查看是否可读查看是否可写 true false 以文件字符来显示 seek 移动光标位置,以文件起始来读,字节,以0为单位utf-8三个字符

python学习笔记(十四) - easy_install安装与使用

一. 背景知识 在使用python的时候,经常会使用到本身没有安装的第三方模块,这时我们就需要使用easy_install 二. 使用方法 1. 下载easy_setup.py的源代码:http://pypi.python.org/pypi/setuptools 2. 用记事本存放源码并命令为easy_setup.py 3. 双击运行或在命令行运行:python easy_setup.py 4. 在python的安装目录python\scripts目录中可以看到有好几个easy_install的

python学习第十四天 -面向对象编程基础

python也是支持面向对象编程的.这一章节主要讲一些python面向对象编程的一些基础. 什么是面向对象的编程? 1.面向对象编程是一种程序设计范式 2.把程序看做不同对象的相互调用 3.对现实世界建立对象模型 面向对象编程的基本思想: 1.类用于定义抽象类型 2.实例根据类的定义被创建出来 如何定义一个类并创建实例? >>> class Animal(object): pass >>> dog = Animal() >>> cat = Animal

python学习笔记(十四): unittest

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite TestLoader是用来加载TestCase到TestSuite中的 TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信

python学习三十四天函数高阶函数定义及用法

python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn) 原文地址:https://www.

python学习笔记第四节

集合与复习 删除列表中的列表的元素 remove(元素) 括弧填元素而不是索引 取值 根据索引遍历这歌列表 不根据索引遍历列表的常用操作: 比较 元组 字典常用操作: 元组中的列表内元素的添加 避免字典取值报错 遍历字典中的元素 将字典的key转化为列表 字典的值转化为列表然后取值(字典是无序的) 列表元素的计算 字典内计算key的计算,用单独的volues 不要用所有 字典内值得计算 字典setdefault 没有就添加,有就不管 创建字典方式1 创建字典方式2 创建字典方式3 update