re模块正则表达式基本使用

正则表达式

  • *通用的字符串表达式框架
  • *简洁表达一组字符串的表达式
  • *针对字符串表达’简洁’和’特征’思想的工具
  • *判断某字符串的特征归属

正则表达式在文本处理中十分常用

  • *表达文本类型的特征(病毒,入侵等)
  • *同时查找或特换一组字符串
  • *匹配字符串的全部或部分

正则表达式的使用

  • *编译:将符合正则表达式语法的字符串转换成正则表达式特征

正则表达式的语法

.	表示任何单个字符
[]	字符集,对单个字符给出取值范围		[abc]表示a,b,c,[a-z]表示a到z单个字符
[^]	非字符集,对单个字符给出排除范围		[^abc]表示非a或b或c的单个字符
*	前一个字符0次或无限次扩展			abc*表示 ab,abc,abcc,abbc等
+	前一个字符1次或无限扩展				abc+表示abc,abcc,abccc等
?	前一个字符0次或1次扩展				abc?表示ab,abc
|	左右表达式任意一个					abc|def表示abc,def	

{m}	扩展前一个字符m次					ab{2}c表示abbc
{m,n}	扩展前一个字符m次至n次(含n)		ab{1,2}c表示abc,abbc
^	匹配字符串开头					^abc表示abc且在一个字符串的开头
$	匹配字符串结尾					abc$表示abc且在一个字符串的结尾
()	分组标记,内部只能使用|操作符		(abc)表示abc,(asd|qwe)表示asd,qwe
\d	数字,等价于[0-9]			
\w	单词字符,等价于[A-Za-z0-9_]

Re库主要功能函数

re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

*在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
*pattern:正则表达式的字符串或原生字符串表示
*string:待匹配字符串
*flags:正则表达式使用时的控制标记
	常用标记
		re.I re.IGNORECASE		忽略正则表达式的大小写,[A-Z]能够匹配小写字符
		re.M  re.MULTHLINE	正则表达式中的^操作符能够将给定字符串的每行当作匹配开始
		re.S  re.DOTALL		正则表达式中的操作符能够匹配所有字符,默认匹配除换行符

re.match() 从一个字符串的开始位置起匹配正则表达式,返回match对象

*从一个字符串的开始位置起匹配正则表达式,返回Match对象
*pattern:正则表达式的字符串或原生字符串表示
*string:待匹配字符串
*flags:正则表达式使用时的控制标记

re.findall() 搜索字符串,以列表类型返回全部能匹配的子串

*从一个字符串的开始位置起匹配正则表达式,返回Match对象
*pattern:正则表达式的字符串或原生字符串表示
*string:待匹配字符串
*flags:正则表达式使用时的控制标记

re.split() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

*从一个字符串的开始位置起匹配正则表达式,返回Match对象
*pattern:正则表达式的字符串或原生字符串表示
*string:待匹配字符串
*maxsplit:最大分割数,剩余部分作为最后一个元素输出
*flags:正则表达式使用时的控制标记

re.finditer() 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

*从一个字符串的开始位置起匹配正则表达式,返回Match对象
*pattern:正则表达式的字符串或原生字符串表示
*string:待匹配字符串
*flags:正则表达式使用时的控制标记

re.sub() 在一个字符串中替换所有匹配正则表达式的子串,返回替代后的字符串

*从一个字符串的开始位置起匹配正则表达式,返回Match对象
*pattern:正则表达式的字符串或原生字符串表示
*repl:替换匹配字符串的字符串
*string:待匹配字符串
*count:匹配的最大替换次数
*flags:正则表达式使用时的控制标记

re.compile() 将正则表达式的字符串形式编译成正则表达式对象

*pattern:正则表达式的字符串或原生字符串表示
*flags:正则表达式使用时的控制标记

match对象的属性

.string	待匹配的文本
.re	匹配时使用的pattern对象(正则表达式)
.pos	正则表达式搜索文本的来世位置
.endpos	正则表达式搜索文本的结束位置

match对象的方法

.group(0)	获得匹配后的字符串
.start()	匹配字符串的原始字符串的开始位置
.span()	返回(.start(), .end())元组类型

re库的贪婪匹配和最小匹配,re库默认采用贪婪匹配,即输匹配最长的子串

最小匹配操作符

*?	前一个字符0次或无限次扩展,最小匹配
+?	前一个字符1次或无限次扩展,最小匹配
??	前一个字符0次或1次扩展,最下匹配
{m,n}?	扩展前一个字符m次至n次(含n),最小匹配

你可能感兴趣的:(python基础)