赞
踩
.(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符>>>
>>> r=re.compile(r'.*')
>>> r.search('How are you\nFine thank you and you\nI am fine too').group()
'How are you'
>>>
这个例子可以看出.*(点-星)匹配除了换行外的所有字符,但无法匹配换行符,如何匹配包括换行符的所有字符呢?
1、通过传入re.DOTALL或者re.S作为re.compile()的第二个参数
>>>
>>> r=re.compile(r'.*',re.DOTALL)
>>> r.search('How are you\nFine thank you and you\nI am fine too').group()
'How are you\nFine thank you and you\nI am fine too'
>>> r=re.compile(r'.*',re.S)
>>> r.search('How are you\nFine thank you and you\nI am fine too').group()
'How are you\nFine thank you and you\nI am fine too'
>>>
2、通过 (.|\n)* 正则表达式来匹配所有字符>>>
>>> r=re.compile(r'(.|\n)*')
>>> r.search('How are you\nFine thank you and you\nI am fine too').group()
'How are you\nFine thank you and you\nI am fine too'
>>>
除了re.DOTALL外,re.IGNORCASE(等价于re.I),re.MULTILINE(re.M),也是很有用的参数
re.IGNORCASE可以忽略大小写>>>
>>> r=re.compile(r'hello',re.I)
>>> r.findall('Hello hello world heLLo')
['Hello', 'hello', 'heLLo']
>>>
正则表达式字符介绍:详细的可见维基百科介绍
//常用字符的使用介绍在正则表达式中 \ 的意思是代表转义字符在正则表达式中 . 的意思是代表任意字符在正则表达式中 * 的意思是代表任意个字符(包含零个)在正则表达式中 + 的意思是代表一个或者多个字符(不包含零个)在正则表达式中^ 的意思是代表开始位置(如果用在[之内也有相反的意思])在正则表达式中 $ 的意思是代表结束位置在正则表达式中 [……]的意思是代表或者的意思比如[a-zA-Z]的意思是a到z或者A-Z之间的随意一个都可以
在正则表达式中(.....) 的意思是代表分组在正则表达式中 $1 的意思是代表引用分组1的数据在正则表达式中 {4} 的意思是代表相同的4个;这里代表是量词的意思,比如说:(/d/d/d/d是四个数字但是可以简写为/d{4};这里包含前面的字符,一共四次,循环了三次)也可以是(/d{2,4};这里包含前面的字符,共2到4个数字,循环了一到三次)
在正则表达式中 /d 的意思是代表数字在正则表达式中 /D 的意思是代表非数字在正则表达式中 /b 的意思是代表一个单词的边界在正则表达式中 /B 的意思是代表非单词的边界在正则表达式中 /g 的意思是代表全局(global)在正则表达式中 /i 的意思是代表忽略大小写,(ignore case)默认大小写敏感在正则表达式中 /m 的意思是代表多行,(multiple lines )多行搜索
预定义类:在正则中特殊字符大写表示取反,比如/d代表数字,则/D代表非数字与[^0-9]相同字符等价类含义.[^\r\n]除了回车符合换行符之外所有的字符\d[0-9]数字字符\D[0-9]非数字字符\s[\t\n\x0b\f\r]空白符\S[^\t\n\x0b\f\r]非空白符\w[a-zA-z_0-9]单词字符(字母,数字下划线)\W[^a-zA-z_0-9]非单词字符
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。