正则表达式(re)


1、re.match(pattern, str, flag) 从str的第一个字母开始匹配,若不是开头的,尽管属于str内,则无法匹配。

2、贪婪匹配与非贪婪匹配(?)

贪婪匹配:尝试匹配尽可能多的字符
>>> sentence = """You said "why?" and I say "I don't know"."""
>>> re.findall(r'"(.*)"', sentence) 
['why?" and I say "I don\'t know']
本意是选出人物所说的话,但是却由于“贪婪”特性,出现了匹配不当
非贪婪匹配:尝试匹配尽可能**少**的字符
>>> sentence = """You said "why?" and I say "I don't know"."""
>>> re.findall(r'"(.*?)"', sentence)
['why?', "I don't know"]

3、re.search() 扫描整个字符串并返回第一个成功的

4、re.sub() 替换字符串

5、re.compile()是将正则字符串编译成正则表达式对象,便于复用该匹配模式
6、re.S 多行匹配(换行)
7、re.findall(pattern, html) 从html中返回所有符合的pattern正则的结果

pattern = re.compile('<li.*?title="(.*?)".*?href="(.*?)".*?more-meta.*?author">(.*?)</span>.*?year">(.*?)</span>.*?</li>', re.S)
results = re.findall(pattern, html)

转载于:https://www.cnblogs.com/wangshx6/p/9904041.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值