第43天python学习re模块学习

#之前可以进行对字符串进行完全匹配#回顾:python中字符串是不可变对象,所以所有修改和生成字符串的操作的实现方法都是另一个内存片段中新生成一个字符串对象

import re#re正则方法:是针对字符串进行模糊匹配操作的。正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集# 成re模块,程序员们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。#使用场景:身份证,14亿人找到北京市90年的人#1、元字符: .^ $ * + ? {} [] |()\#"."通配符,需要字符串里完全符合,匹配规则,就匹配,(规则里的.元字符)可以是任何一个字符,匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符)# data=re.findall("g...d","sadajsgongdsa")#表示g开头中间为任意的三个字符,结尾为d的输出# print(data)

#2、"^"尖叫符号:只能匹配开头的# data=re.findall("^s...j","sadajsgongdsa")#^整个字符串开头必须是s,匹配的只能从开始匹配,需要一一对应(字符串位数一样),开始和结尾对于上# print(data)#结果为:[‘sadaj‘]。

#3、“$”$符号需要匹配到结尾的# data=re.findall("s...j$","sadajsgonjgdssdaj")#整个字符串结尾必须是j,需要一一对应(字符串位数一样),开始和结尾对于上# print(data)#结果为:[‘sadaj‘]。

#4、当中间"."太多的时候处理方法:重复符号:* + ? {}

#重复符号:*匹配的是0到无穷次# data=re.findall("s*","sadajsgonjgdssdaj")#*代表0到无穷次。# print(data)#结果:[‘s‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘s‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘ss‘, ‘‘, ‘‘, ‘‘, ‘‘]

#重复符号:+匹配的是1到无穷次# data=re.findall("sdaj+","sadajsgonjgdssda")#*代表1到无穷次。# print(data)#[]## data=re.findall("sdaj*","sadajsgonjgdssda")#*代表0到无穷次。# print(data)#[‘sda‘]

#重复符号:?匹配的是0到1次# data=re.findall("sdaj?","sadajsgonjgdsda")#*代表0到1穷次。# print(data)#[‘sda‘]

# “* +”贪婪匹配# data=re.findall("sdaj*","sadajsgonjgdssdajjjj")#*代表0到无穷次。# print(data)#[‘sdajjjj‘]

#转成不是贪婪匹配# data=re.findall("sdaj*?","sadajsgonjgdssdajjjj")#*代表0到无穷次,但是?表示0到1,* ?同时取到最少0。# print(data)#[‘sda‘]

#5、{}的作用包括了(* +  ?)的用法# data=re.findall("sdaj{6}","sadajsgonjgdsdajjjjjj")#*代表重复出现6个j。# print(data)#[‘sdajjjjjj‘]## data=re.findall("sdaj{0,6}","sadajsgonjgdsdajj")#*代表0到6的范围。# print(data)#[‘sdajj‘]

#6、"[]"字符集:# data=re.findall("x[y z]","xsjdaxyjjxz")#[]表示或的意思,只要有xy  xz就输出# print(data)#[‘xy‘, ‘xz‘]

#"[]"字符集:里面没有特殊符号,有特殊意义的:"-"表示a-z   "^"表示非  “\”表示:可以把有功能的转换成没有功能  把无功能的变为有功能# data=re.findall("x[y * z]","xsjdaxyyyjjxz")#[]表示或的意思,只要有xy  xz就输出,虽然有*号但是?特殊符号y不会重复# print(data)#[‘xy‘, ‘xz‘]

# data=re.findall("x[a-z]","xsjxdaxyyyjjxz")#x开头第二位a-z都可以# print(data)#[‘xs‘, ‘xd‘, ‘xy‘, ‘xz‘]

# data=re.findall("x[^a-z]","xsjxdaxyyyjjx9")#表示:除了a-z以外的# print(data)#[‘x9‘]

#7、“\”可以把有功能的转换成没有功能  把无功能的变为有功能。本来d D s S等无功能的,只是一个字符,但是加"\"就有功能了

#\d匹配任何十进制数,它相当于类[0-9],\d+如果需要匹配一位或者多位数的数字时用

#\D匹配任何非数字字符,它相当于类[^0-9]

#\s匹配任何空白字符,它相当于类[\t\n\r\f\v]

#\S匹配任何非空白字符,它相当于类[^\t\n\r\f\v]

#\w匹配包括下划线在内任何字母数字字符,它相当于类[a-zA-Z0-9_]

#\W匹配非任何字母数字字符包括下划线在内,它相当于类[^a-zA-Z0-9_]

# \b匹配一个单词边界,也就是指单词和空格间的位置

#8、

#2、6个函数

原文地址:https://www.cnblogs.com/jianchixuexu/p/11624282.html

时间: 2024-10-10 09:43:14

第43天python学习re模块学习的相关文章

python之web模块学习-- urllib

准备写一些列的 python之web模块学习,基本上涉及常用的的web模块,包括 urllib.urllib2.httplib.urlparse.requests,现在,开始我们的第一个模块的学习吧. 1  urllib简介 python urllib 模块提供了一个从指定的URL地址获取网页数据,然后对其进行分析处理,获取我们想要的数据. 2  常用方法 2.1  urlopen  -- 创建一个类文件对象 为读取指定的URL help(urllib.urlopen) urlopen(url,

python之web模块学习-- urllib2

下面继续学习python的web模块 ---  urllib2,一个源于urllib又高于urllib的模块. 1  urllib2 简介 urllib2是python自带的一个访问网页及本地文件的库. 与urllib相比,显著区别之处在于: 1) urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL.这意味着,用urllib时不可以伪装User Agent字符串等. 2) urllib提供urlencode方法用来encode发送的da

python之web模块学习-- urlparse

继续学习python的web模块,urlparse 是一个比较简单的模块,主要是用来 解析URL字符串的 1  urlparse简介 python使用urlparse来解析URL字符串 主要方法: urlprase 次要方法: urljoin urlsplit  urlunsplit等 2  urlparse详解 urlparse模块主要是把url拆分为6部分,并返回元组.并且可以把拆分后的部分再组成一个url.主要有函数有urljoin.urlsplit.urlunsplit.urlparse

Python随机数random模块学习,并实现生成6位验证码

一.前言 学习python随机数random模块的使用 ,并使用模块中的函数,实现6位验证码生成 二.random模块 1.random.random() 返回0-1直接的随机数,类型为float >>>print(random.random()) 0.1259184691662908 2.random.randint(1, 8) 返回1-8直接的随机数,包括8 >>>print(random.randint(1, 8)) 3 3.random.choice() 从一个

Python学习--Selenium模块学习(2)

Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制浏览器访问URL browser.get(https://www.baidu.com/)   find系列函数定位元素 - `find_element_by_xxx` 返回第一个符合条件 `WebElement` - `find_elements_by_xxx` 返回符合条件所有元素包含了`WebE

[ python编程 ] subprocess模块学习总结

转载:http://www.jb51.net/article/48086.htm 从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息. 一.subprocess以及常用的封装函数    运行python的时候,我们都是在创建并

Python的hashlib模块学习

python的hashlib模块提供一些常用的加密功能 例如获取字符串'Nobody inspects the spammish repetition'的MD5校验值 In [48]: import hashlib In [49]: m=hashlib.md5() In [50]: m.update('Nobody inspects') In [51]: m.update('the spammish repetition') In [52]: m.digest() Out[52]: '%\x8d

Python re正则表达式模块学习【转】

感谢原作者,本文转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 博主还有一些比较好的python文档在此一并推荐,可以移步查看. 文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whate

day5模块学习 -- os模块学习

python基础之模块之os模块 os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小-- 另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath