正则表达式 面向对象编程

一.正则表达式
正则表达式:由一系列特殊字符拼接而成的表达式/规则,该表达式用于从一个大字符串中匹配出符合规则的子字符串
	1.常用匹配模式
		\w 匹配字母数字及下划线
		\W 匹配非字母数字及下划线
		\s 匹配任意空白字符等价于\t\n\r
		\S 匹配任意非空字符
		\d 匹配任意数字,等价于[0-9]
		\D 匹配任意非数字
		\A 字符串开始
		\Z 字符串结束,如果存在换行,只能匹配到换行前的结束字符串
		\z 字符串结束
		\G 匹配到最后完成的位置
		\n 匹配一个换行符
		\t 匹配一个制表符
		^  匹配字符串开头
		$  匹配字符串的末尾
		.  匹配非换行(\n)的任意字符,当re.DOTALL标记被指定时,则可以匹配全部字符
		[...]用来表示一组字符,单独列出:[amk]匹配'a','m'或'k'
		[^...]排除字符..
	2.数量符号
		[]  只代表一个字符,从[]内任意取出,^在[]内是排除的意思
		*  匹配0个或多个表达式
		+  匹配1个或多个表达式
		?  匹配 0个或1个表达式
		{n}  精确匹配n个表达式
		{n,m}  匹配n到m次表达式,贪婪模式
		a|b  匹配 a 或 b
		()  匹配括号内的表达式,也表示一个组

   3.方法:
   	3.1 findall
   		re.findall(pattern,str,flags) 查找所有符合条件的结果,返回列表,查不到返回空列表
   	3.2 search
   		re.search(pattern,str,flags) 只要查找到第一个符合条件的结果就会结束查询,返回包含匹配结果的对象,该对象可以用group()方法得到匹配的字符串,如果没有字符串匹配的,则返回None
   	3.3 match 
   		re.match(pattern,str,flags),用法与search一致,但是是从头开始匹配
   	3.4 split
   		re.split(pattern, string, maxsplit=0, flags=0) 切割字符串返回列表,如 re.split('[ab]','sdvadgbfsvd')表示字符串遇到a或b都会切分,返回列表
   	3.5  sub
   		re.sub('a','A',str) 替换
   	3.6  compile
   		re.compile(pattern, flags=0) 记录正则表达式
   		a = re.compile(\d+)
   		a.findall(str)
4.特殊用法
	4.1 .* 匹配所有
	4.2 ?: 取消分组,()内输入,可使返回结果为全部的匹配内容
	4.3 |  或者,先匹配前面的,后匹配后面的,所以将复杂的写在前面
	4.4 \ 转义,对正则来说,a\\c确实能匹配到a\c,但是在python解释器读取a\\c时,会发生转义,然后交给re执行,故会报错,解决方法:a\\\\c或者r'a\\c'
	4.5 .*? 通用取值
	4.6 ?!  ?!pattern,表示在没有配到pattern的字符串的前提下,再进行后续的正则表达式匹配,后续匹配仍然从被匹配字符串的头开始(排除)
			如果?!后的正则表达式能匹配到,则直接返回None
	4.7 ?= ?=pattern,表示在配到pattern的字符串的前提下,再进行后续的正则表达式匹配,后续匹配仍然从被匹配字符串的头开始(必须满足)
			如果?=后的正则表达式不能匹配到,则直接返回None
	4.8 查找汉字  re.findall(r'[\u4E00-\u9fa5]+','.....')
二.面向对象编程
	核心是对象二字,对象是用来盛放数据和功能的容器
	基于该思想编程就是在整合程序
	优点:可扩展性强
	缺点:编程复杂度高
	与面向过程编程相比
	面向过程:核心在于过程,此思想编程相当于在做一条条流水线
				优点:把复杂的问题结构化继而简单化
				缺点:可扩展性差
   	
   		
   		
   		


















		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值