您的位置:首页 > 编程语言 > Python开发

Python学习之re模块

2017-08-28 09:47 176 查看
记录re正则表达式几个常用函数~~~

通常进行字符串处理时, 常用到正则表达式完成按自定义的规则对其处理. 通常这些规则称为模式, 因此正则表达式也称为模式表达. 在python中, 一般使用re模块实现python正则表达式功能.

基础知识

原子

正则表达式最基本组成单元,常见原子类型:

* 普通字符作为原子

普通字符:数字 大小写字母 下划线:

import re
pattern = "yue" # 普通字符作为原子
strs = "shengyueqing"
res = re.search(pattern=pattern,string=strs) # 成功返回匹配结果
print res
out: <_sre.SRE_Match object at 0x7fd64ad29718>


*非打印字符作为原子

非打印字符:一些在字符串中用于格式控制符号, 比如换行符

import re
pattern = "\n"
strs = '''test1
test2'''
res = re.search(pattern=pattern,string=strs)
print res
out: <_sre.SRE_Match object at 0x7f4b51449718>


*通用字符作为原子

通用字符: 一个原子可匹配一类字符.

\w 匹配任意一个字母 数字 或下划线

\W 匹配除字母 数字和下划线的任意一个字符

\d 匹配任意一个十进制数

\D 匹配除十进制以外的任意一个其他字符

\s 匹配任意一个空白字符

\S 匹配除空白字符以外的任意一个其他字符

import re
pattern = "\w\dpython\w"
strs = "abcdfphp345python_py"
res = re.search(pattern=pattern,string=strs)
print(res.group()) #45python_


解释:模式’\w\dpython\w’对python字符进行匹配, 要求: 字符后\w是一个字母 数字或下划线, 字符前\d一位是一个任意的十进制数, 再前一位\w是字符 数字或下划线.

*原子表

使用原子表, 可以定义一组地位平等的原子, 当匹配时会取该原子表的任意一个原子进行匹配.

pat1 = "\w\dpython[xyz]\w"
pat2 = "\w\dpython[^xyz]\w"
pat3 = "\w\dpython[xyz]\W"
strs = "abcdfphp345pythony_py"
res1 = re.search(pattern=pat1,string=strs)
res2 = re.search(pattern=pat2,string=strs)
res3 = re.search(pattern=pat3,string=strs)
print "res1",res1.group() #25pythony_
print "res2"
4000
,res2.group() #无匹配报异常
print "res3",res3.group() #无匹配报异常


解释:

pat1: [xyz]表示匹配其中任意一个即可, 45pythony_中匹配python后面的y

pat2: [^xyz]表示匹配除xyz任意其他字符即可

元字符

定义: 正则表达式中一些特殊含义的字符, 比如重复N次前面的字符, 也称为量词

常见元字符及含义:



元字符分为: 任意匹配元字符 边界限制字符 限定符 模式选择符 模式单元

*任意匹配元字符

import re
strs = "abcdfphp345pythony_py"
patt = ".python.."
res4 = re.search(pattern=patt,string=strs)
print(res4.group()) #5pythony_


三个点号匹配除换行符外的任意字符, 匹配python的前一个字符及后面的两个字符

*边界限制元字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: