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

python 正则表达式笔记1

2016-08-04 00:00 85 查看
(1) import re

(2) .号(点号)表示出了换行符之外的所有字符

re.search(r'love','i love you')

(3) 如果要匹配"."(点号)加上反斜杠"\",如:

re.search('\.','i love you.com')
<_sre.SRE_Match object; span=(10, 11), match='.'>

\d
可以匹配一个数字,
\w
可以匹配一个字母或数字

(4) 简易匹配ip地址

re.search(r'\d\d\d.\d\d\d.\d\d\d.\d\d\d','192.168.111.222')

(5)字符类[]

re.search(r'[aeiou]','I love you')

_sre.SRE_Match object; span=(3, 4), match='o'>

(6)"-" (下划线)表示范围

re.search(r'[0-9]','I love 123.com')

<_sre.SRE_Match object; span=(7, 8), match='1'>

(7)大括号{}里面的数字表示大括号前面的字符重复的次数,如:

re.search(r'ab{3}c','hello abbbcd')

<_sre.SRE_Match object; span=(6, 11), match='abbbc'>

3到10个b都会匹配

re.search(r'ab{3,10}c','abbbbc')

<_sre.SRE_Match object; span=(0, 6), match='abbbbc'>

(8)匹配IP地址:

re.search(r'(([01]{0,1}\d{0,1}\d{0,1}|2[0-4]\d||25[0-5])\.){3}([01]{0,1}\d{0,1}\d{0,1}|2[0-4]\d||25[0-5])','192.168.1.1')
(9)A|B 匹配表达式A或B,例如

re.search('L(i|y)','Li')

(10)^ 匹配输入字符串的开始位置

re.search(r'I lov','I love you')

(11)$匹配输入字符串的结束为止

re.search(r'ok$','i loe ok')

(12)\跟上数字,有两种表达方式,

12.1 数字在1-99范围内表示引用序列对应词组所匹配的字符串

re.search(r'(Lucy)\1','LucyLucy')

<_sre.SRE_Match object; span=(0, 8), match='LucyLucy'>

re.search(r'(Lucy)and(Lily)\2','LucyandLilyLily')

<_sre.SRE_Match object; span=(0, 15), match='LucyandLilyLily'>

12.2 如果跟着的数字是0开头或者3位的数字的长度,那么它是一个八进制数,八进制数字对于的ascii所对应的字符

re.search(r'(Lucy)\060','helloLucy0')

<_sre.SRE_Match object; span=(5, 10), match='Lucy0'>

re.search(r'(jackson)\141','jacksona')

<_sre.SRE_Match object; span=(0, 8), match='jacksona'>

(13)[]字符类里面的内容,都当成普通的字符(除了几个特殊的字符,-:表示范围;\:字符串的转义符)

13.1 re.search(r'[.]','hello baidu.com')

<_sre.SRE_Match object; span=(11, 12), match='.'>

13.2 特殊字符- re.findall(r'[a-z]','Hello')

['e', 'l', 'l', 'o']

13.3 特殊字符\

re.findall(r'[\n]','love you forever\n')

['\n']

13.4 特殊字符,脱字符^

13.4.1 表示取反(放在前面),表示不包括其中的任意字符

re.findall(r'[^a-z]','Love you!')

['L', ' ', '!']

还例如:

re.search(r'[^"]+\.jpg','"http://a.jpg')

<_sre.SRE_Match object; span=(1, 13), match='http://a.jpg'>

13.4.2 表示脱字符本身(放在后面)

re.findall(r'[a-z^]','My name is jack')

['y', 'n', 'a', 'm', 'e', 'i', 's', 'j', 'a', 'c', 'k']

14.字符重复{m,n},例如

re.search(r'Love{3}','Loveee you')

<_sre.SRE_Match object; span=(0, 6), match='Loveee'>

re.search(r'(love){3}','lovelovelovey')

<_sre.SRE_Match object; span=(0, 12), match='lovelovelove'>

15.正则表达式默认使用贪婪的模式:只要符合的条件下,会尽可能多的去匹配

s='<html><title>I love you</title></html>'

re.search(r'<.+',s)

_sre.SRE_Match object; span=(0, 38), match='<html><title>I love you</title></html>'>

15.1 启用飞贪婪模式

re.search(r'<.+?>',s)

<_sre.SRE_Match object; span=(0, 6), match='<html>'>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: