python正则表达式(\ [ ])(三)

对元字符的转义:

反斜杠\在正则表达式中有多种用途。

比如,我们要在下面的文本中搜索,所有点前面的字符串,也包含点本身。

苹果.是绿色的
橙子.是橙色的
香蕉.是黄色的

 如果,我们这样写正则表达式.*.,聪明的你肯定发现对劲

因为点是一个元字符,直接出现在正则表达式中,表示匹配任意的单字符,不能表示.这个字符本身的意思了

如果我们要搜索的内容本身就包含元字符,就可以使用反斜杠进行转义

这里我们就应使用这样的表达式:.*\.

示例,python程序如下:

content='''
苹果.是绿色的
橙子.是橙色的
香蕉.是黄色的
'''
import re
p=re.compile(r' .*\.')
for one in p.findall(content):
    print(one)

 匹配某种字符类型

反斜杠后面接一下字符,表示匹配某种类型的一个字符

比如

扫描二维码关注公众号,回复: 10537912 查看本文章

\d 匹配0-9之间任意一个数字字符,等价于表达式[0-9]

\D 匹配任意一个不是0-9之间的数字字符,等价于表达式[^0-9]

\s 匹配任意一个空白字符,包括 空格,tab,换行符等,等价于表达式[\t\n\r\f\v]

\S 匹配任意一个非空白字符,等价于表达式[^\t\n\r\f\v]

\w 匹配任意一个文字字符,包括大小写字母,数字,下划线,等价于表达式[a-zA-Z0-9_]

\W 匹配任意一个非文字字符,等价于表达式[^a-zA-Z0-9_]

反斜杠也可以用在方括号里面,比如[\s,.]表示匹配:任何空白字符,或者逗号,或者点

举例:

source=''' 
王亚辉
tony
刘文武
'''
import re
p=re.compile(r'\w{2,4}',re.A)
print (p.findall(source))



'''['tony']'''

  

方括号-匹配某几种类型

方括号表示要匹配某几种类型的字符

比如

[abc]可以匹配a,b,或者c里面的任意一个字符,等价于[a-c]

[a-c]中间的-表示一个范围从a到c

如果你想匹配所有的小写字母,可以使用[a-z]

一些元字符在方括号内失去了魔法,变得和普通字符一样了

比如,

[akm.]匹配 a k m . 里面任意一个字符

这里 . 在括号里面不在表示匹配任意字符了,而是表示匹配 . 这个字符

起始位置

^表示匹配文本的起始位置

如果是多行模式,表示匹配文本每行的开头位置

比如,你要从下面的文本中,选择每行逗号前面的字符串,也包括逗号本身

苹果,苹果是绿色的
橙子,橙子是橙色的
香蕉,香蕉是黄色的

 就可以这样写正则表达式^.*.

如果在方括号中使用^,表示非 方括号里面的字符集合([^\d],表示,选择非数字的字符)

比如:

content='a1b2c3d4e5'
import re
p=re.compile(r'[^\d]')
for one in p.findall(content):
    print(one)

'''
输出结果:
a
b
c
d
e
'''

  

猜你喜欢

转载自www.cnblogs.com/wxcx/p/12643156.html