欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python正则表达式元字符用法_正则表达式-常用元字符的基本使用

发布时间:2025/3/15 python 22 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python正则表达式元字符用法_正则表达式-常用元字符的基本使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

常用元字符有:[]  ^  $  \  *  +  ?  {} .

python中使用正则表达式需要导入re模块

下面介绍用法

[] 指定一个字符集,[ABC]表示ABC的字符集,[^ABC] 取反,除了ABC的字符集。

>>> import re

>>> r = r"ABC[ABC]" #定义一个正则

>>>

>>> re.findall(r,'ABCA') #使用findall进行匹配

['ABCA']

>>> re.findall(r,'ABCB')

['ABCB']

>>> re.findall(r,'ABCD')

[]

>>> r = r"ABC[^ABC]" #取反

>>> re.findall(r,'ABCD')

['ABCD']

>>> re.findall(r,'ABCA')

[]

>>>

^ 匹配行首 ^h 如果行首是h,则返回h,如果不是h则返回空

>>> r = r"^h"

>>> re.findall(r,'hello')

['h']

>>> re.findall(r,'ehllo')

[]

>>>

$ 匹配行尾,和^是反着来的,不难理解,匹配末尾

>>> r = r"h$"

>>> re.findall(r,'hello')

[]

>>> re.findall(r,'olleh')

['h']

>>>

\ 转义字符

反斜杠后面加不同的字符以表示不同的特殊含义

\d 匹配任何十进制数 相当于[0-9]

\D 匹配任何非数字字符,相当于[^0-9]

\s 匹配任何空白字符,相当于[\t\n\r\f\v]

\S 匹配任何非空白字符,相当于[^\t\n\r\f\v]

\w 匹配任何字母数字字符,相当于[a-zA-Z0-9]

\W 匹配任何非字母数字字符,相当于[^a-zA-Z0-9]

>>> r1 = r"day=\d"

>>> r2 = r"day=\D"

>>> st = 'day=1 day=2 day=3 day=a day=b day=c'

>>> re.findall(r1,st)

['day=1', 'day=2', 'day=3']

>>> re.findall(r2,st)

['day=a', 'day=b', 'day=c']

>>>

>>> r3 = r"enter=\s"

>>> r4 = r"enter=\S"

>>>

>>> st = '''

enter=

enter=1 enter= enter=3 enter=

enter=

'''

>>> re.findall(r3,st)

['enter=\n', 'enter= ', 'enter=\n', 'enter=\n']

>>> re.findall(r4,st)

['enter=1', 'enter=3']

>>>

>>> r5 = r"\w"

>>> r6 = r"\W"

>>> st = 'abcdefg1234567!@#$%^&'

>>> re.findall(r5,st)

['a', 'b', 'c', 'd', 'e', 'f', 'g', '1', '2', '3', '4', '5', '6', '7']

>>> re.findall(r6,st)

['!', '@', '#', '$', '%', '^', '&']

>>>

* + ? 都是重复的意思

*重复0次或多次、+重复1次或多次、?重复0次或1次

>>> r1 = r"ab*"

>>> re.findall(r1,'a')

['a']

>>> re.findall(r1,'ab')

['ab']

>>> re.findall(r1,'abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

['abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb']

>>>

>>> r2 = r"ab+"

>>> re.findall(r2,'ab')

['ab']

>>> re.findall(r2,'a')

[]

>>> re.findall(r2,'abbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

['abbbbbbbbbbbbbbbbbbbbbbbbbbbbb']

>>>

>>> r3 = r"ab?"

>>> re.findall(r3,'a')

['a']

>>> re.findall(r3,'ab')

['ab']

>>> re.findall(r3,'abb')

['ab']

>>> re.findall(r3,'abbbbbbbbbb')

['ab']

>>>

{}表示重复的范围,{m,n}最少重复m次,最多重复n次

举个成绩的例子吧,最少1位,最多2位。

>>> r1 = r"\d{1,3}"

>>> re.findall(r1,'100')

['100']

>>> re.findall(r1,'1')

['1']

>>> re.findall(r1,'')

[]

>>> re.findall(r1,'1000')

['100', '0']

>>> re.findall(r1,'1001')

['100', '1']

>>>

它会把多余的位扔到列表的后面元素中。

.

.的用法就是匹配所有,看下面例子即可

.*是匹配0次或多次,.+是1次或多次,一般用+

>>> r1 = r"src=.*"

>>> re.findall(r1,'src=img http qwerqwer')

['src=img http qwerqwer']

>>> re.findall(r1,'src=img http hello')

['src=img http hello']

>>>

>>> r1 = r".*.com"

>>> re.findall(r1,'www.com')

['www.com']

>>> re.findall(r1,'hello.com')

['hello.com']

>>>

读书和健身总有一个在路上

总结

以上是生活随笔为你收集整理的python正则表达式元字符用法_正则表达式-常用元字符的基本使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。