频道栏目
首页 > 资讯 > Python > 正文

Python学习之re模块

17-08-29        来源:[db:作者]  
收藏   我要投稿

通常进行字符串处理时, 常用到正则表达式完成按自定义的规则对其处理. 通常这些规则称为模式, 因此正则表达式也称为模式表达. 在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",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的前一个字符及后面的两个字符

*边界限制元字符

相关TAG标签
上一篇:Leetcode#20: Valid Parentheses
下一篇:Python+Scrapy爬取数据简单实例
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站