您现在的位置: 365建站网 > 365文章 > Python 正则表达式 匹配任意字符的写法

Python 正则表达式 匹配任意字符的写法

文章来源:365jz.com     点击数:3245    更新时间:2018-10-27 11:39   参与评论

  .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符

>>> 
>>> 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] 非单词字符


如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (3245人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号