Pyhton入门 笔记 第四天 正则表达式与JSON
2018-07-17 04:06:04来源:博客园 阅读 ()
一,正则的替换
import re
lanuage='PythonC#JavaC#PHPC#'
r=re.sub('C#','Go',lanuage,1) #sub替换函数 ,第一个参数为要被替换的单词如:C#,第二个参数为被替换成为的结果单词如:GO,第三个参数为字符集如:lanuage,第四个参数为被替换的次数,默认为0表示无限替换,不设限制。正例为1表示只替换一次,第五个参数为模式,可忽略。
print(r)
结果:PythonGOJavaC#PHPC#
上面的sub函数也可以用replace代替
lanuage.replace('C#','GO') # 但要注意,pyhton语言中str是不可变的,所以不可被更换的。当要打印时要赋值给变量
tngh=lanuage.replace('C#','GO') #此时才能打印
print(tngh)
二,动态替换
2.1)
import re
lanuage='PythonC#JavaC#PHPC#'
def convert(value):
matched=value.group() #当C#以value值的形式传入到convert函数中时,是一个对象object的形式,所以无法直接输出或打印,要通过group()函数转换。
return '||'+matched+'||'
r=re.sub('C#',convert,lanuage) #以函数为替换结果
print(r)
结果:Python||C#||Java||C#||PHP||C#||
2.2) 要求把字符集S内的数字大于6的改为9小于6的改为0
import re
s='a8c2e3q6t1h2w86j7'
def convert(value):
matched=value.group()
if int(matched)>=6: #字符集S内为str字符形,所以要转化成数字进行比较。
return '9' #正则只能返回字符形,所以要对9加引号
else:
return '0'
r=re.sub('\d',convert,s)
print(r)
三,正则表达式的匹配
import re
s='a8c2e3q6t1h2w86j7'
r=re.match('\d',s) #match()函数是从第一位开始匹配,如果第一位匹配成功就记录下来位置,并退出匹配。如果第一位匹配不成功直接返回none
print(r.span()) #span()函数记录匹配步数
r1=re.search('\d',s) #search()函数只匹配一次,成功就退出匹配
print(r1.group())
r2=re.findall('\d',s)
print(r2)
注:match()和search()函数返回的都是对象Objict
四,正则表达式(组) ,要求,找出两个单词之字符集,不包括单词本身.
import re
s='life is short,i use python'
r=re.search('life(.*)python',s) #单词life与python是对要匹配字符的前后限定。()括号为组限定,.点表示所有限\n以外的所有单字符,*星表示对.点的不限制次数匹配。
print(r.group(1)) #group()函数内的参数为对正则组的限定,默认为0,可以不写,输出所有。为1是对正则一个组限定,只能输出组内的字符集。
上例最后两句,也可以写为
r=re.findall('life(.*)python',s)
print(r)
输出结果一样。
五,正则组的案例 ,要求,多单词之间的匹配
import re
s='life is short,i use python,i love python'
r=re.search('life(.*)python(.*)python',s) #多个组的限定
print(r.group(0))
print(r.group(1))
print(r.group(2))
print(r.group(0,1,2))
print(r.groups())
六,反序列化 JSON
import json
json_str={"name":"tngh","age":18} #json格式的key必须都要用双冒号,字符也要用双冒号
json_str1=[{"name":"tngh","age":18,"flag":false},{"name":"tngh","age":18}] #json中有不同的数据格式,对应到pyhton中也就有不同的数据格式。有可能是字典也有可以是序列。
student=json.loads(json_str) #把json数据转化成python数据,并赋值给变量student
print(type(student))
print(student)
七 序列化python转化数据到json
也是调用json模块
使用json.dumps()函数
import json
student=[{'name':'tngh','age':18,'flag':false},{'name':'tngh','age':18}]
json_str=json.dumps(student)
print(type(json_str))
print(json_str)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 小白如何入门 Python 爬虫? 2019-08-13
- Python之装饰器笔记 2019-08-13
- Python之对象持久化笔记 2019-08-13
- Python单元测试笔记 2019-08-13
- 编程小白的第一本python入门书(高清版)PDF下载 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash