您的位置:首页 > 编程语言 > Python开发

python基础学习笔记05-正则表达式与json

2018-01-23 15:48 836 查看

正则表达式



- 在re模块中,使用re.findall(‘正则表达式’,要匹配的值,匹配模式),返回一个列表;参数:匹配模式 可选,如re.I 忽略大小写

- ‘Python’ 普通字符,’\d’ 元字符;可以混合

- re.match()/re.search() 也可以用于正则表达式的匹配

import re

a = 'jskfd123hjg34hj521j'

r = re.findall('\d',a)
print(r)  #['1', '2', '3', '3', '4', '5', '2', '1']


正则的贪婪与非贪婪:

加上了 ? 号

import re
#贪婪型-尽可能多匹配
a = 'python 213java887php'
r = re.findall('[a-z]{3,6}',a)
print(r)   #['python', 'java', 'php']


import re
#非贪婪
a = 'python 213java887php'
r = re.findall('[a-z]{3,6}?',a)
print(r)  #['pyt', 'hon', 'jav', 'php']


‘python*’ ; * 号匹配它**前面那个字符**0或多次

? 0或1次;+ 1次或多次 …..

re.sub(‘AA’,’BB’,str,2) 作用将字符串str中的AA替换成BB,替换2个

re.sub()使用示例:

import re

a = 'pythonC#javaC#PHPC#'
r = re.sub('C#','GO',a,2)
print(r)     #pythonGOjavaGOPHPC#

----------
import re

a = 'pythonC#javaC#PHPC#'

def conver(value):
return "AAA"

r = re.sub('C#',conver,a)         #接收函数作为参数
print(r)   #pythonAAAjavaAAAPHPAAA

----------
import re

a = 'A39sdsk87239k8'

def conver(value):
matched = value.group()   #注意这里没有使用for循环遍历
if int(matched) >= 6:
return '9'
else:
return '0'

r = re.sub('\d',conver,a)
print(r)     #A09sdsk99009k9

----------
import re

a = 'A39sd873'

def conver(value):
print(value)    #注意打印的value的值
return '9'

r = re.sub('\d',conver,a)
print(r)
"""
运行结果:value是一个object
<_sre.SRE_Match object; span=(1, 2), match='3'>
<_sre.SRE_Match object; span=(2, 3), match='9'>
<_sre.SRE_Match object; span=(5, 6), match='8'>
<_sre.SRE_Match object; span=(6, 7), match='7'>
<_sre.SRE_Match object; span=(7, 8), match='3'>
A99sd999
"""

----------
import re

a = 'life is shore,i use python'
r = re.findall('life(.*)python',a)
print(r)   #[' is shore,i use ']

r1 = re.search('life(.*)python',a)
print(r1.group(1))   # is shore,i use ;此处分组了group(组号) 组号0为原字符串;还有groups()


#JSON—JavaScript Object Notation JavaScript对象标记。是一种轻量级数据交换格式



python的JSON使用示例:

import json

json_str = '{"name":"zran","age":12}'      #"{....}" 外面使用双引号报错

student = json.loads(json_str)   #返回字典、列表类型
print(type(student))  #<class 'dict'>
print(student)  #{'name': 'zran', 'age': 12}

----------
import json

json_str = '[{"name":"zran","age":12,"falge":false},{"name":"llll","age":19}]'      #"{....}" 外面使用双引号报错

student = json.loads(json_str)
print(type(student))  #<class 'list'>
print(student)  #[{'name': 'zran', 'age': 12, 'falge': False}, {'name': 'llll', 'age': 19}]   #注意json中的bool值是false,python中False


json.dump(python数据) python数据类型转换为json字符串 (反序列化)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: