正则模块

正则模块:re
import re
print(re.findall(‘\w‘,‘egon 123 + _ - *‘)) #\w匹配字母数据及下划线

print(re.findall(‘\W‘,‘egon 123 + _ - *‘)) #\W匹配非字母数据及下划线

print(re.findall(‘\s‘,‘egon\t 12\n3 + _ - *‘)) #\s匹配任意空白字符,等价于[\f\n\r\t]

print(re.findall(‘\S‘,‘egon 123 + _ - *‘)) #\S匹配任意非空字符

print(re.findall(‘\d‘,‘egon\t 12\n3 + _ - *‘)) #\d匹配任意数字,等价于[0-9]

print(re.findall(‘\D‘,‘egon\t 12\n3 + _ - *‘)) #\D匹配任意非数字

print(re.findall(‘\A‘,‘egon\t 12\n3 + _ - *‘)) #匹配字符串开始

print(re.findall(‘\n‘,‘egon\t 12\n3 + _ - *‘)) #匹配一个换行符

print(re.findall(‘\t‘,‘egon\t 12\n3 + _ - *‘)) #匹配一个制表符

print(re.findall(‘^e‘,‘egon\t 12\n3 + _ - *‘)) #匹配以什么开头

print(re.findall(‘o$‘,‘egon\t 12\n3 + _ - * foo‘)) #匹配以什么结尾

重复:./?/*/+/.*/*?
.代表任意一个字符
print(re.findall(‘e.gon‘,‘egon\t 12\n3 + _ - * foo‘))

print(re.findall(‘e.gon‘,‘egon\t 12\n3 + _ - * foo‘,re.DOTALL)) #DOTALL表示“.”代表所有

?代表?左边的字符出现0或1次
print(re.findall(‘ab?‘,‘a ab abb abbb a1b‘))

*代表*号左边的字符出现0次或无穷次
print(re.findall(‘ab*‘,‘a ab abb abbb a1b‘))

+代表+号左右的字符出现1次或无穷次
print(re.findall(‘ab*‘,‘a ab abb abbb a1b‘))

{m,n}代表左边的字符出现m到n次
print(re.findall(‘ab{1,2}‘,‘a ab abb abbb a1b‘))

.*贪婪匹配
print(re.findall(‘a.*b‘,‘a ab abb abbb a1b‘))

*?非贪婪匹配
print(re.findall(‘a*?b‘,‘a ab abb abbb a1b‘))

|或者
print(re.findall(‘mysql(*?:e|d)‘,‘aaa mysqle and mysqld‘))

()匹配括号内的表达式,也表示一个组

rawstring:
print(re.findall(r‘a\\c‘,‘a\c alc aBc‘)) #等于 print(re.findall(‘a\\\\c‘,‘a\c alc aBc‘))

[]代表取中括号内任意的一个字符
print(re.findall(‘a[a-z]‘,‘ac alc aBc a-d zxc aaa‘))
print(re.findall(‘a[0-9]‘,‘ac alc aBc a-d zxc aaa‘))
print(re.findall(‘a[a-z]‘,‘ac alc aBc a-d zxc a+b‘))
print(re.findall(‘a[a-zA-Z]‘,‘ac alc aBc a-d zxc aaa‘))
print(re.findall(‘a[-+*/]‘,‘ac alc aBc a-d z-c a+a‘)) #匹配“-”必须放到两边

[^aa]代表取除了aa的字符串。

re模块的使用方法:
re.search #只匹配成功一次,并返回
print(re.search(‘a[a-z]‘,‘ac alc aBc a-d zxc aaa‘).group())

re.match #只从开头匹配
print(re.match(‘a[a-z]‘,‘a2 alc aBc a-d zxc aaa‘).group())

re.split #切分
print(re.split(‘:‘,‘root:x:0:0::/root:/bin:/bash‘))
print(re.split(‘:‘,‘root:x:0:0::/root:/bin:/bash‘,maxsplit=1)) #maxsplit最大切分次数

re.sub #匹配并替换
print(re.sub(‘root‘,‘lzx‘,‘root:x:0:0::/root:/bin:/bash‘,1)) #1代表替换几次,默认替换所有
print(re.sub(‘([a-z]+)([^a-z]+)(.*?)([^a-z]+)([a-z])$‘,r‘\5\2\3\4\1‘,‘root:x:0:0::/root:/bin:/bash‘)) #将一个单词和最后一个单词互换位置

re.compile #定义一个正则表达式可以重复使用
obj=re.compile(‘a\d{2}b‘)
print(obj.findall(‘a12b a123b abbb‘))

原文地址:http://blog.51cto.com/13399294/2173567

时间: 2024-10-08 13:52:51

正则模块的相关文章

python_way day6 反射,正则 模块

python_way day6 反射 正则 模块 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什么去可以找到这些模块的位置哪? 那就是环境变量! 如何查看当前的环境变量?a = sys.pathprint(a)['D:\\资料\\python\\oldboy13\\jobs\\day5\\conf', 'D:\\资料\\python\\python35\\lib\\site-packages\\requests-2.10.0-py

python 正则模块的使用(re)说明

python 正则模块的使用(re)说明 正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义.这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解.比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\. 你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r'\n'这个字

python学习day19正则模块

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

常用模块--- 正则模块 正则表达式 re 模块

# 正则模块# 正则表达式# re模块 #--------------------------------------- time -----------------------------------------# 计算时间差# 做时间格式的转换 # 所有的模块要经历的两个步骤 # 要操作的概念本身 : 正则表达式 时间 # 使用模块去操作它 : re time # 学习 正则表达式 本身 # 什么是正则表达式 # 一种匹配字符串的规则 # input 一串数据 : # 是不是qq号码 : 全

Python3中正则模块re.compile、re.match及re.search

本文实例讲述了Python3中正则模块re.compile.re.match及re.search函数用法.分享给大家供大家参考,具体如下: re模块 re.compile.re.match. re.search re 模块官方说明文档 正则匹配的时候,第一个字符是 r,表示 raw string 原生字符,意在声明字符串中间的特殊字符不用转义. 比如表示 '\n',可以写 r'\n',或者不适用原生字符 '\n'. 推荐使用 re.match re.compile() 函数 编译正则表达式模式,

Python3中正则模块re.compile、re.match及re.search函数用法详解

Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表示 raw string 原生字符,意在声明字符串中间的特殊字符不用转义. 比如表示 ‘\n',可以写 r'\n',或者不适用原生字符 ‘\n'. 推荐使用 re.match re.compile() 函数 编译正则表达式模式,返回一个对象.可以把常用的正则表达式编译成正则表达式对象,方便后续调用及

day5模块学习--re正则模块

1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程:  http://

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

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

day 5 正则 模块与包

协程函数 首先要明确协程函数特点:yield变为表达式,可以通过g.send(value)传值,用send传值时协程函数需要初始化,也可以说是生成器函数的一种 yield的另一种用法: 1.yield的语句形式: yield 1(生成器) 2.yield的表达式形式: x=yield (协程函数) x=yield g.send('1111'),先把1111传给yield,由yield赋值给x 然后再往下执行,直到再次碰到yield,然后把yield后的返回值返回 >>> def func