Python语言之Pyhton入门正则表达式与JSON
小标 2018-08-08 来源 : 阅读 1222 评论 0

摘要:本文主要向大家介绍了Python语言之Pyhton入门正则表达式与JSON,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之Pyhton入门正则表达式与JSON,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

一,正则的替换
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)
 

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程