Python2.7-re模块

re模块

1、正则表达式的语法

‘.‘ 匹配任意字符,若指定了re.S,则可以匹配换行符
‘^‘ 匹配行首,即字符串的开头,若指定了re.M,会自动匹配每行开头
‘$‘ 匹配行尾,同上
‘*‘ 匹配大于等于0个的re
‘+‘ 匹配大于等于1个的re
‘?‘ 匹配0个或1个的re,此外?是非贪婪匹配的标志
{m} 指定re的个数刚好为m个
{m,n} 指定re的个数在m,n之间
[] 可以在其中指定字符集,其中特殊符号也会被视作是普通字符,‘^‘为除字符集以外的字符
‘|‘ 或符号,匹配任意一个
(‘...‘) 若匹配到括号内的re,将其视为一个组,存在内存中
(?:‘...‘) 将匹配到的组不存在内存中
(?iLmsux) 指定匹配方法
(?P<name>‘...‘) 指定匹配的组的名称
(?#‘...‘) 忽略指定的字符
(?=‘...‘) 如果指定的字符在匹配到的字符后面,才算匹配成功,例如:Isaac (?=Asimov) will match ‘Isaac ‘ only if it’s followed by ‘Asimov‘
(?!‘...‘) 与上面的相反,只有指定字符不在后面才匹配
(?<=‘...‘) 指定字符在前面才匹配
(?<!‘...‘) 指定字符不在前面才匹配
\number
\b 匹配空字符串,仅在词的开头和结尾
\B 与b相反
\d 匹配数字
\D d的补集
\s 匹配空格
\S s的补集
\w 匹配字母,数字,下划线
\W w的补集

2、模块内容(常数,方法)

re.compile(pattern, flags=0) 预编译正则表达式
re.I/re.IGNORECASE 忽略大小写
re.L/re.LOCALE 使\w,\W,\b,\B,\s,\S根据当前作用域来判断
re.M/re.MULTILINE 匹配多行
re.S/re.DOTALL ‘.‘匹配换行
re.U/re.UNICODE 匹配unicode字符集
re.X/re.VERBOSE 可以将正则写在多行中,并用#注释
re.search(pattern, string, flags=0) 搜索string中第一个匹配的部分
re.match(pattern, string, flags=0) 只从第一个字符开始匹配,若第一个不符合,就返回none
re.split(pattern, string, maxsplit=0, flags=0) 用pattern分割字符串,返回分割后的列表,若pattern以捕获组形式,则返回包括pattern的所有字符的列表
re.findall(pattern, string, flags=0) 找到所有符合条件的部分
re.finditer(pattern, string, flags=0)) 以迭代器形式返回所有匹配的部分,类型为MatchObject
re.sub(pattern, repl, string, count=0, flags=0) 执行count次repl替换string中匹配pattern的部分
re.subn(pattern, repl, string, count=0, flags=0) 同上,只是返回结果为新字符串和替换次数的元组
re.escape(pattern) 将pattern中的特殊符号加上转义符
re.purge() 清空正则表达式的缓存

3、MatchObject类

常用方法:group(),groups(),groupdict()包含匹配结果的组,start(),end()匹配结果的组的下标,span()返回start和end的元组
常见属性:lastindex,lastgroup,re,string

时间: 2024-08-21 23:16:34

Python2.7-re模块的相关文章

解决python2安装MySQL-python模块报错

今天电脑重装系统,所有软件都重装一遍,MySQLdb模块一直装不好,纠结了好久,终于解决,方法分享给大家. MySQLdb模块安装: 1.下载MySQL-pyhon模块,网站为:https://pypi.python.org/pypi/MySQL-python/ 2.解压,进入目录,修改site.cfg文件13行,取消注释,将原路径mysql_config = /usr/local/bin/mysql_config,改为新的mysql_config = /usr/local/mysql/bin/

python2.7入门---模块(Module)

    来,这次我们就看下Python 模块(Module).它是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句.模块让你能够有逻辑地组织你的 Python 代码段.把相关的代码分配到一个模块里能让你的代码更好用,更易懂.模块能定义函数,类和变量,模块里也能包含可执行的代码.下例是个简单的模块 support.py: def print_func( par ):        print "Hello : ", par         re

【python2】commands模块getstatusoutput函数的小问题

[TOC] 问题 import commands as subprocess status, _ = subprocess.getstatusoutput("ps -elf|grep fuckU") # status: # 255 这里的status按照grep的定义其实应该返回1,也就是没有grep到匹配项,在shell中echo $? 结果为1但是python2的getstatusoutput获取的并不是os.exitcode()而是os.wait()的返回值. python3由于

python2安装MySQL-python模块失败

需先安装libmysqlclient环境依赖: sudo apt-get install libmysqlclient-dev 重试即可 原文地址:https://www.cnblogs.com/jrri/p/11704262.html

python2 paramiko模块初试 &nbsp; 连接 ssh_connect 上传 FTP_post

今天刚好看到了 python2 得 paramiko 模块 就拿来试了一下  发现 在windown 和linux 利用 paramiko  进行 ssh 连接得不同之处 linux 利用   ~/.ssh/known_hosts 出已安全! 如已登陆过 s.load_system_host_keys('/.ssh/known_hosts') ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts.当下次访问相同计算机时,OpenSSH会核对公钥

Python2/3 中执行外部命令(Linux)和程序(exe) -- 子进程模块 subprocess

subprocess 模块可以使 Python 执行外部命令(Linux)和程序(exe),并得到相应的输出结果,进一步处理.在 Python3.5 中,subprocess 模块取代了    os.system.os.spawn* .该模块很好地体现了 Python 胶水语言的特性,丰富了 Python 的拓展能力,故本文接下来主要介绍 subprocess 模块的用法,并简单说明在 Python2/3 中的使用区别. 速查表 Python2 Python3.5 subprocess.call

python之模块contextlib 加强with语句而存在

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块contextlib,为加强with语句而存在 #特别注意:python3和python2关于该模块的功能用法有很大的不同. import contextlib #目前了解即可,暂不作深入研究

python之模块配置文件ConfigParser(在python3中变化较大)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ConfigParser(在python3中为configparser) #特别注意:python3和python2关于该模块的功能用法有很大的不同. #配置文件解析器 import ConfigParser,os #初始化一个配置文件对象 config=ConfigParser.ConfigParser() #增加一个section config.add_section('Sectio

Python,subprocess模块(补充)

1.subprocess模块,前戏 res = os.system('dir') 打印到屏幕,res为0或非0 os.popen('dir') 返回一个内存对象,相当于文件流 a = os.popen('dir').read() a中就存的是执行结果输出了 Python2.7 commands模块 commands.getstatusoutput('dir')返回元祖,第一个元素为状态0为成功,第二个为结果 windows上不好用,只是Linux好用 subprocess模块,替换os.syst

9 与python2交互

1.创建外键 # 创建room表 mysql> create table rooms(id int primary key not null,title varchar(10)); Query OK, 0 rows affected (0.01 sec) #创建学生表 mysql> create table stu( -> id int primary key auto_increment not null, -> name varchar(10), -> roomid in