python 正则RE

多分隔符

split()不支持多分隔符,对空格也处理不太好
re.split()完善了这部分功能

import re
re.split(r'[;,\s]\s*',LINE)

————————————————————

在字符串开头或结尾处做文本匹配

匹配字符串的开头是否包含某一个字符串,用 .startswith(str);返回true
若要针对多个选项检查,需提供包含选项的元组

#startswith
choices = ['http:','ftp:']
url = 'http://www.python.org'
url.startswith(choices)
#endswith用法同上

————————————————————

用通配符做字符串匹配
#fnmatch
#通配符:特殊语句,主要有型号(*)和问号(?),用来模糊搜索。
#module fnmatch,fnmatchcase
#fnmatch()的匹配模式采用的大小写区分规则和底层文件相同(根据操作系统而区别);fnmatchcase()则根据所提供的大小写来匹配。
#fnmatch做的事介乎于简单的字符串方法和全功能的正则表达式之间。

from fnmatch import fnmatch,fnmatchcase
fnmatch('foo.txt','*.txt')
fnmatch('foo.txt','?oo.txt')’
fnmatch('Dat45.csv','Dat[0-9]*')

[x for x in y if fnmatch(x,pattern)]

#也可以处理非文件名式的字符串

————————————————————

文本模式的匹配&查找

上面写的三种是针对简单的文字匹配,更复杂的要用到re模块和正则表达式

import re

#若打算一种模式做多次匹配,可将正则表达式预编译为一个模式对象,然后用模式对象去匹配。
PATTERN = re.compile()
PATTERN.match()

#match()尝试在字符串的开头找到匹配项,用findall()可以针对全文搜索

#将部分模式用括号包起来以引入捕获组,捕获组能单独提取出每个组的内容
PATTERN = re.compile(r'()/()/')

2.4.3

参考资料:
http://python.usyiyi.cn/translate/python_278/library/re.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值