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

正则表达式

这里写图片描述
- 在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基础学习笔记05-正则表达式与json_第1张图片

  • python的JSON使用示例:
import json

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

student = json.loads(json_str)   #返回字典、列表类型
print(type(student))  #
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))  #
print(student)  #[{'name': 'zran', 'age': 12, 'falge': False}, {'name': 'llll', 'age': 19}]   #注意json中的bool值是false,python中False
  • json.dump(python数据) python数据类型转换为json字符串 (反序列化)

你可能感兴趣的:(Python基础笔记)