1、英文状态的句号点 . :指代除了换行符\n以外的任意字符。
import re
s = 'Life was like a box of chocolates, you never know what you are gonna get'
f1 = re.findall('chocol.....', s)
f2 = re.findall('chocol\n....', s)
print(f1)
print(f2)
# f1输出结果: ['chocolates,']
# f2输出结果: []
2、英文状态下的中括号 []:中括号内的内容指代所需查找字符集合。
import re
s = '123456789chocolates123456789'
f = re.findall('o[clz]', s) # [cl]表示'c'或者'l'或者'z'
f1 = re.findall('[0-9]', s)
f2 = re.findall('[a-z]', s)
print(f)
print(f1)
print(f2)
# f输出结果: ['oc', 'ol']
# f1输出结果: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# f2输出结果: ['c', 'h', 'o', 'c', 'o', 'l', 'a', 't', 'e', 's']
3、英文状态下的圆括号 ():圆括号内的内容就是别截取的内容。
import re
s = 'Life was like a box of chocolates, you never know what you are gonna get'
f = re.findall('choco(lates)', s) # 输出圆括号内的内容
print(f)
# f输出结果: ['lates']
4、英文状态的大括号 {}:大括号内的内容表示匹配前一个字符特定的次数或范围。
import re
s = '123456789chocolates'
f = re.findall('1\d{3}', s) # \d:代表0~9任一数字,{3}:指匹配大括号前一个字符3次
f1 = re.findall('1\d{3,}', s) # {3,}:指匹配大括号前一个字符至少3次
f2 = re.findall('1\d{,5}', s) # {3,5}:指匹配大括号前一个字符至多5次
f3 = re.findall('1\d{3,5}', s) # {3,5}:指匹配大括号前一个字符至少3次,至多5次
print(f)
print(f1)
print(f2)
print(f3)
# f输出结果: ['1234']
# f1输出结果: ['123456789']
# f2输出结果: ['123456']
# f3输出结果: ['123456']
5、英文状态下的问号 ?:问号表示匹配问号前一个字符0次或1次。
import re
s = '123456789chocolates123456789'
f = re.findall('9.?', s)
print(f)
# f输出结果: ['9c', '9']
6、加号 +:加号表示匹配前一个字符1次以上。
import re
s = '123456789chocolates123456789'
f = re.findall('o.+', s)
f1 = re.findall('[0-9]+', s)
f2 = re.findall('[a-z]+', s)
print(f)
print(f1)
print(f2)
# f输出结果: ['ocolates123456789']
# f1输出结果: ['123456789', '123456789']
# f2输出结果: ['chocolates']
7、星号 * :星号表示匹配前一个字符0次以上。
import re
# 找出列表中含有‘chocolates'的所有元素
lis1 = ['123456789chocolates123456789', 'chocolates123','chocolates', '123456789']
lis2 = []
for s in lis1:
lis2.extend(re.findall('[0-9]*chocolates', s))
print(lis2)
# lis2输出结果: ['123456789chocolates', 'chocolates', 'chocolates']
8、反斜杠 \ :是转义符,用于转换特定字符含义的符号。
import re
s = '123456789 chocolates 123456789'
f = re.sub('\s', '', s) # 将s中所有空白替换为空
print(f)
# f输出结果: 123456789chocolates123456789