Python中的正则表达式语法

2018-08-13  本文已影响0人  octocat
import re
re.compile(r'.').match('\n') # return None
import re
re.compile(r'<p>(.*)</p>').match('<p>a</p><p>b</p>').groups()[0] # return 'a</a><a>b'
re.compile(r'<p>(.*?)</p>').match('<p>a</p><p>b</p>').groups()[0] # return 'a'
re.compile(r'a[b]?').match('ab').group() # return ab
re.compile(r'a[b]??').match('ab').group() # return a
import re
re.compile('\w{3,5}').match('abcdefg').group() # return abcde
re.compile('\w{3,5}?').match('abcdefg').group() # return abc
# 表示匹配单引号中的内容
re.compile(r'(\')(.*?)\1').match('\'hello\'').groups()[1] # return hello 
# \1 表示 第一个括号里面的单引号
re.compile(r'(?i)a').match('A').group() # return A

这个的作用和将flag 参数加入到compile中是一个作用

import re
re.compile(r'(?P<name>\w+)').match('lucy').group('name') # lucy
# 匹配引号里面的内容
re.compile(r'(?P<quote>[\'"])(.*?)(?P=quote)').match('"haha"').group()
# (?P=quote) 就是对 (?P<quote>...) 的引用
import re
re.compile(r'famil(?=y|ies)').match('family').group() # famil
re.compile(r'famil(?=y|ies)').match('families').group() # famil
import re
re.compile(r'(?<=17)[\d]{9}').search('17600000000').group() # 600000000
# (?<=...)括号里面的正则只能匹配固定宽度的正则,如 [a]{3} 这种,不能匹配非固定长度的正则,如 {3,5}这种
# 否则会报 error: look-behind requires fixed-width pattern 的异常
# 这个地方只能使用search,而不能使用match。因为match是开头匹配,而search是查找
上一篇下一篇

猜你喜欢

热点阅读