day18 正则和re模块

# 正则# 正则表达式 ---- 通用的 ,处理 字符串# 正则是一种处理文字的规则# 给我们提供一些规则,让我们从杂乱无章的文字中提取有效信息

#模块# 它只是我们使用python去操作一些问题的工具而已,和要操作的这个东西本身是两件事情

# re模块 -- python使用正则# 正则规则

# []在正则里代表字符组 只约束一个字符# 比如[123456789] 没有顺序# 只约束里边其中一个数字

#[字符组]:表示在一个字符的位置可以出现的所有情况中的集合就是一个字符组#表示数字的字符组[0123456789]# 可以简写[0-9]  但是简写模式必须从小到大

# 表示字母的字符组# [a-z]表示所有小写 [A-Z]表示大写

#可以把数字字母拼在一起# [0-9 ,a-z]

# .匹配除换行符以为的任意字符# \w匹配字母或数字或下划线 只能匹配一个字母# \s匹配任何空白符  space# \d匹配数字        digit# \n匹配一个换行符  next# \t匹配一个制表符  table

# 表示匹配任意字符[\w\W][\s\S][\d\D]#正则匹配:字符量词 非贪婪标志# 字符: 字符 ,字符组,元字符,表示一个字符位置上可以出现的内容

# r‘\\n--->r‘\n‘# 在在线工具中能执行 express

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import re

ret = re.findall(‘a‘, ‘eva egon yuan‘)  # 返回所有满足匹配条件的结果,放在列表里
print(ret) #结果 : [‘a‘, ‘a‘]

ret = re.search(‘a‘, ‘eva egon yuan‘).group()
print(ret) #结果 : ‘a‘
# 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

ret = re.match(‘a‘, ‘abc‘).group()  # 同search,不过尽在字符串开始处进行匹配
print(ret)
#结果 : ‘a‘

ret = re.split(‘[ab]‘, ‘abcd‘)  # 先按‘a‘分割得到‘‘和‘bcd‘,在对‘‘和‘bcd‘分别按‘b‘分割
print(ret)  # [‘‘, ‘‘, ‘cd‘]

ret = re.sub(‘\d‘, ‘H‘, ‘eva3egon4yuan4‘, 1)#将数字替换成‘H‘,参数1表示只替换1个
print(ret) #evaHegon4yuan4

ret = re.subn(‘\d‘, ‘H‘, ‘eva3egon4yuan4‘)#将数字替换成‘H‘,返回元组(替换的结果,替换了多少次)
print(ret)

obj = re.compile(‘\d{3}‘)  #将正则表达式编译成为一个 正则表达式对象,规则要匹配的是3个数字
ret = obj.search(‘abc123eeee‘) #正则表达式对象调用search,参数为待匹配的字符串
print(ret.group())  #结果 : 123

import re
ret = re.finditer(‘\d‘, ‘ds3sy4784a‘)   #finditer返回一个存放匹配结果的迭代器
print(ret)  # <callable_iterator object at 0x10195f940>
print(next(ret).group())  #查看第一个结果
print(next(ret).group())  #查看第二个结果
import re

ret = re.findall(‘www.(baidu|oldboy).com‘, ‘www.oldboy.com‘)
print(ret)  # [‘oldboy‘]     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可

ret = re.findall(‘www.(?:baidu|oldboy).com‘, ‘www.oldboy.com‘)
print(ret)  # [‘www.oldboy.com‘]

2 split的优先级查询

ret=re.split("\d+","eva3egon4yuan")
print(ret) #结果 : [‘eva‘, ‘egon‘, ‘yuan‘]

ret=re.split("(\d+)","eva3egon4yuan")
print(ret) #结果 : [‘eva‘, ‘3‘, ‘egon‘, ‘4‘, ‘yuan‘]

#在匹配部分加上()之后所切出的结果是不同的,
#没有()的没有保留所匹配的项,但是有()的却能够保留了匹配的项,
#这个在某些需要保留匹配部分的使用过程是非常重要的。
时间: 2024-08-30 13:02:35

day18 正则和re模块的相关文章

正则、re模块

字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字.字母.标点等等. 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0.1.2...9这10个数之一. 正则 待匹配字符 匹配结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没

正则,re模块

一.正则表达式(精准匹配) 匹配字符串内容的一种规则 二.字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 常见字符组格式如下:[0123456789],[0-9],[a-z],[A-Z],必须由从小到大,不可逆序. 三.主要元字符 [^s]除了s不能匹配 a|b == [ab] 表示匹配任意字符:[\w\W],[\d\D],[\s\S] 熟记(.,\w , \d ,^ ,$ ,a|b , () ,[...] ,[^...]) 元字符 匹配内容 元字符 匹配内容

正则及re模块-基础(一)

正则表达式 一说规则我已经知道你很晕了,现在就让我们先来看一些实际的应用.在线测试工具 http://tool.chinaz.com/regex/   http://tool.oschina.net/regex 首先你要知道的是,谈到正则,就只和字符串相关了.在我给你提供的工具中,你输入的每一个字都是一个字符串.其次,如果在一个位置的一个值,不会出现什么变化,那么是不需要规则的. 比如你要用"1"去匹配"1",或者用"2"去匹配"2&q

正则与re模块

一.正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1.字符组 在同一个位置可能出现的各种字符组成一个字符组,在正则表达中用[ ]表示 一个正则就是一条匹配规则,可以规定一次匹配字符的长度,字符组每次匹配一个长度为1的字符,例如:待匹配字符为:2a+ 使用字符组进行匹配时就会进行三次比较 正则 待匹配字段 匹配结果 说明 [0123456789] 5 5 在一个字符组里枚举所有合法的字符,待匹配字符与其中一个相同,即便匹配成功 [0123456789] 56

python 带正则的search 模块

glob  是python 提供的一个支持正则表达式的查找文件的模块. 实现上采用了os.listdir() 和 fnmatch.fnmatch().  但是没有真的invoking a subshell. glob.glob(pathname) Return a possibly-empty list of path names that match pathname, which must be a string containing a path specification. pathna

正则和re模块

正则表达式是什么?能做什么? 1,把一个文件中所有的手机号码都找出来      从大段的文字中找到符合规则的内容 open打开文件 读文件  str 从一长串的字符串中找到所有的11位数字 是一个字符一个字符的读 2.输入手机号                                          判断某个字符串是否完全符合规则 验证这个手机号是否合法 给这个手机号发送一个验证码 用户收到验证码  填写验证码 完成注册 正则表达式 从大段的文字中找到符合规则的内容 爬虫   从网页的

正则法则 re模块

1.匹配不到返回空列表 s = "meet_宝元[email protected]\t \n" print(re.findall("\w",s)) #匹配字母.数字.下划线和中文 # s = "meet_宝元[email protected]\t \n" # print(re.findall("\s",s)) #匹配任意空格,制表符,换行符 # s = "meet_宝元[email protected]\t \n&q

day、模块-basedir、os、json模块、pickle和正则模块。

四.正则. re模块: 作用:针对的对象:字符串, 课前引入: 例子一. s='dsdsadsadadsalexdsds's.find('alex') 如何找到字符串内部的alex;?过去学习可使用方法:find.split.replace.但是字符串内置的方法很局限,只能实现完全匹配. 如果要找到:与a**开头的需求呢?就无法实现.要实现模糊匹配就得用到模糊匹配. 例子二.模糊匹配 #在文本里面存着一堆身份证 4504231989347382822 1104231989347382822 11

python学习day19正则模块

正则模块:正则所有程序员都要用到正则爬虫方向要求对正则表达式掌握牢固正则表达式:是一种客观存在的规则re模块,是python提供的操作正则表达式的工具正则表达式在所有语言中都是通用的中括号在正咋中是字符集,只能正序,由小到大.(点)是匹配除了换行以外所有字符\w小写w匹配字母或数字或下划线\s匹配任意的空白符\n匹配一个换行符\d匹配所有数字\t匹配一个制表符\b匹配一个单词的结尾\^匹配字符串的开始   在字符集里面就是\$匹配字符串结尾\W大写的w  匹配非字母或数字或下划线\ID匹配非数字