正则表达式中方括号表示要匹配指定的几个字符之一 。
比如:
[abc] 可以匹配 a, b, 或者 c 里面的任意一个字符,等价于 [a-c] 。
[a-c] 中间的 - 表示一个范围从a 到 c。
[a-z]可以匹配所有的小写字母
一些元字符在方括号内就变得和普通字符一样了。
比如:
[akm.] 匹配 a k m . 里面任意一个字符,其中.在括号里面不在表示匹配任意字符,而是表示匹配 . 这个字符
如果在方括号中使用 ^ , 表示非方括号里面的字符集合。
比如:\d 匹配0-9之间任意一个数字字符,[^\d] 表示选择非数字的字符。
content = 'a1b2c3d4e5' import re a = re.compile(r'[^\d]')#前面加r表示不进行python语法的字符串转义 for one in a.findall(content): print(one)
运行结果为:
a
b
c
d
e
又如提取有效的手机号。
1表示第一个数字为1,[36]表示第二个数字为3或6,\d{9}表示匹配9个0-9之间的数字
content = ''' 王一,13512345678,89 徐二,1b098766456,24 李三,13212394765,33 ''' import re a = re.compile(r'1[36]\d{9}')#前面加r表示不进行python语法的字符串转义 for one in a.findall(content): print(one)
运行结果为:
13512345678
13212394765