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

python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法句点 匹配除了换行之外的所有一个字符 点 星 匹配除了换行外的所有字符 r re compile r r search Howareyou nFinethankyo nIamfinetoo group Howareyou 这个例子可以看出 点 星 匹配除了换行外的所有字符 但无法匹配换行符 如何匹配包括

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223306.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午2:22
下一篇 2026年3月17日 下午2:23


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号