[调研和学习]:使用python的正则如何从字符串中提取所需的key和value

现有字符串

one_str = "19:02:00:252 [N]-[15505-789]-[27_android_6.2.10]-[v]-[releaseEdition]-[perf]startType=0,event=start_time_monitor,params={mStartAd=819, mIsFromLauncher=1, baseLibraryFinish=286, baseComponentFinish=318, mAppStart=1596970904094, mEndAd=6063, businessComponentFinish=318, mFirstScreenFinish=6154, frameworkInitFinish=216, mFirstActivityCreate=342, readyToStartFinish=318, mHasAd=1, frameworkInitStart=47}"

使用python的正则如何从上面的字符串中提取所需的key和value?
或者如何快速的将字符串中的等号两边变成字典?
有待学习和研究
参考文章:Python 正则表达式匹配两个指定字符串中间的内容

# A(.*?)B 表示截取 A/B 中间的字符串
import re
txt='@font-face{font-family:"customfont"; src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAACHMAHUrlQa1/U/GjaKLvBmPZEW9aysrJJd8fcdtKlebEw+i+9+ss+zY9V28te/XU+6HyW/QK0Vmv==)'
bs64_str = re.findall("charset=utf-8;base64,(.*?)\)", txt)[0]
print(bs64_str)

执行结果:

d09GRgABAAAAACHMAHUrlQa1/U/GjaKLvBmPZEW9aysrJJd8fcdtKlebEw+i+9+ss+zY9V28te/XU+6HyW/QK0Vmv==

参考上面文章后自己的代码是:

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Author: baosenzhang
# @Time: 2020/08/10 00:32
# @FileName: HelloPython.py
# @Software: PyCharm
# @PythonVersion: 3.7
# @Description: 正则匹配学习

import sys
import os
import re
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

def findValue(key, string):
    value = re.findall(key+"=(.*?)[}|,]",string)[0]
    return value

if __name__ == '__main__':
    one_str = "19:02:00:252 [N]-[15505-789]-[27_android_6.2.10]-[v]-[releaseEdition]-[perf]startType=0,event=start_time_monitor,params={mStartAd=819, mIsFromLauncher=1, baseLibraryFinish=286, baseComponentFinish=318, mAppStart=1596970904094, mEndAd=6063, businessComponentFinish=318, mFirstScreenFinish=6154, frameworkInitFinish=216, mFirstActivityCreate=342, readyToStartFinish=318, mHasAd=1, frameworkInitStart=47}"
    print(findValue("startType",one_str))
    print(findValue("event", one_str))
    # print(findValue("params", one_str))
    print(findValue("mStartAd", one_str))
    print(findValue("baseLibraryFinish", one_str))
    print(findValue("frameworkInitStart", one_str))

运行结果是:

/usr/local/bin/python3.7 /Users/baosenzhang/PycharmProjects/HelloPython/src/HelloPython.py
0
start_time_monitor
819
286
47
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值