正则表达式
方法
方法 描述 返回值 compile(pattern, flags=0) 根据包含正则表达式的字符串创建对象 re对象 search(pattern, string, flags=0) 在string中查找 第一个匹配到的对象或None match(pattern, string, flags=0) 在string开始处匹配 在string开始匹配到的对象或者None findall(pattern, string, flags=0) 列出string的所有匹配项 所有匹配到的string列表 sub(pattern, repl, string, count=0, flags=0) 将string中所有的pattern匹配项用repl替换 完成替换后的新string split(pattern, string, maxsplit=0,flags=0) 根据匹配项来分割string 分割后的string列表 finditer(pattern, string, flags=0) 将string的所有匹配项变成迭代器 迭代器对象
compile方法 —— 编译正则表达式
用法: 变量 = compile(pattern, flags=0) 变量.方法 compile方法是编译一个正则表达式对象
x = re. compile ( r'a-z' )
print ( x)
match方法
用法: re.match(pattern, string, flags=0) pattern是正则表达式的模块 string是表示要匹配的数据 flags是标志位,用于控制正则表达式的匹配方式。如:是否区分大小写、是否多行匹配等 如果匹配成功返回match对象,否则返回一个None 只匹配从头开始的数据,否则返回None
search方法
用法: re.search(pattern, string, flags=0) 匹配成功返回match对象,否则返回一个None 在字符串中搜索第一次出现正则表达式的位置
findall方法
用法: re.findall(pattern, string, flags=0) 匹配成功返回一个有数据列表,否则返回一个空列表 在字符串中找到所有匹配的内容
split方法
用法: re.split(pattern, string, maxsplit=0,flags=0) 用pattern将string多次分隔,maxsplit参数为分隔次数,并返回一个列表 如果为匹配到pattern,则返回一个原字符串列表 在字符串中找到所有匹配的内容并将字符串按照匹配的内容分隔
re. split( r'[a-z]' , '0A1B2C3D4' )
re. split( r'[a-z]' , '0A1B2C3D4' , flags = re. I)
re. split( r'[A-Z]' , '0A1B2C3D4' , maxsplit= 2 )
sub方法
用法: re.sub(pattern, repl, string, count=0, flags=0) 将string中所有的pattern匹配项用repl替换,并返回新字符串 如果string中没有匹配的pattern,则返回原字符串 count参数为替换次数,且必须为非负整数
re. sub( r'[a-h]' , 'z' , '0A1B2C3D4' )
re. sub( r'[A-H]' , 'z' , '0A1B2C3D4' )
re. sub( r'[A-H]' , 'z' , '0A1B2C3D4' , count= 2 )
编译标志 —— flag匹配模式
匹配模式 含义 re.A,re.ASCII 使预定义字符集(如:\w, \s, \d等)只匹配ASCII字符 re.I,re.IGNORECASE 忽略大小写匹配 re.L,re.LOCALE 由当前语言区域决定大小写\w, \b的敏感匹配 re.M,re.MULTILINE 多行匹配,影响’ ^ ‘和’ $ ’ re.S,re.DOTALL 使( . )匹配任意字符,包括换行符 re.X,re.VERBOSE 允许编写更具可读性、更友好的正则表达式
分组 —— ()字符
概念 —— 就是已经匹配到的内容里面再次筛选小括号中的正则表达式,或者指定一个子组的开始和结束位置
test = 'apple is $30, banana is $20'
result = re. search( r'.+(\$\d+).+(\$\d+)' , test)
result. group( )
result. group( 0 )
result. group( 1 )
result. group( 2 )
result. groups( )
CSV模块
概念 —— 常用的文本格式,用以存储表格数据(包括数字或字符),专门处理csv文件的读写操作
写入csv文件
常用方法
方法 含义 数据类型 writerow 写入单行输数据(需配合遍历使用) 列表或元组 writerows 写入多行数据 列表或元组
用法:
变量 = csv.write(csvfile, dialect=‘excel’, **fmtparams) 变量.writerow(数据) 变量 = csv.DictWriter(f, fieldnames, restval=’’, extrasaction=‘raise’, dialect=‘excel’, *args, **kwds) —— fieldnames参数是由键组成的序列 变量.writeheader() —— 单独表头的写入(写入fieldnames参数数据) 变量.writerows(数据)
读取csv文件
用法:
变量 = csv.reader(csvfile, dialect=‘excel’, **fmtparams) 遍历读取 csv.DictReader(f, fieldnames=None, restkey=None, restval=None, dialect=‘excel’, *args, **kwds) —— 返回类型为OrderedDict 遍历读取