一、正则表达式(任何语言都可以使用)
二、Re库
1、search 查找
(1)创建模式对象时
#正则表达式:字符串模式(判断字符串是否符合一定的标准)
import re
#创建模式对象
pat = re.compile("AA") #此处的AA,是正则表达式,用来去验证其他的字符串
m = pat.search("CBA") #search字符串是被校验的内容
print(m)
print("-"*30)
m = pat.search("ABNAA")
print(m)
print("-"*30)
m = pat.search("AABNCABAA")
print(m)
print("-"*30)
运行结果:
【查找不到返回None;查找到返回目标字符串在被校验字符串中的位置;被校验字符串中若有多个目标字符串,则只返回第一个所在的位置(左闭右开)】
None
------------------------------
<re.Match object; span=(3, 5), match='AA'>
------------------------------
<re.Match object; span=(0, 2), match='AA'>
------------------------------
(2)没有模式对象
#没有模式对象
m = re.search("asd","vasde") #前面一个参数为模式对象(规则),后面一个参数为被校验对象
print(m)
运行结果:
<re.Match object; span=(1, 4), match='asd'>
2、findall 查找
#前面字符串是规则(正则表达式),后面字符串是被校验的字符串
print(re.findall("a","cdfasdfevag"))
#在后面一个字符串中找到A-Z的单个字符,以列表形式输出
print(re.findall("[A-Z]","ADCKsdCSK"))
#在后面一个字符串中找到A-Z的单个或多个字符,以列表形式输出
#正则表达式中,+ 表示字符一次或无限次扩展
print(re.findall("[A-Z]+","ADCKsdCSK"))
运行结果:
['a', 'a']
['A', 'D', 'C', 'K', 'C', 'S', 'K']
['ADCK', 'CSK']
3、sub 方法
#sub
#在第三个字符串中找到a,并且用A将所有的a替换掉
print(re.sub("a","A","savdaqw"))
运行结果:
sAvdAqw
***转义字符的问题
#建议在正则表达式中,对被比较的字符串前面加上r,这样就不用担心转义字符的问题了
a = r"\sdxs-\'"
print(a)
运行结果:
\sdxs-\'
三、保存数据到Excel表
1、创建workbook对象 --> 创建工作表 --> 写入数据 --> 保存数据表(固定步骤)
import xlwt
workbook = xlwt.Workbook(encoding="utf-8") #创建workbook对象
worksheet = workbook.add_sheet('sheet1') #创建工作表
# 写入数据,第一个参数“行” 第二个参数“列” 第三个参数是写入的内容
worksheet.write(0,0,'hello')
workbook.save('student.xls') #保存数据表
可见该文件夹(该程序所放的文件夹)中创建了一个XLS表格,名为student,表格中第一行第一列写入数据hello
2、在Excel表中输出九九乘法表
import xlwt
workbook = xlwt.Workbook(encoding="utf-8") #创建workbook对象
worksheet = workbook.add_sheet('sheet1') #创建工作表
a = 1
while a <= 9:
i = 1
b = 1
while i <= a:
worksheet.write(a-1, b-1, "%d * %d = %d"%(a,b,a*b))
b += 1
i += 1
a += 1
workbook.save('student.xls')
运行结果:
【写入字符串的方法为:"%d * %d = %d"%(a,b,a*b)】
1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81