如何编写正则表达式Python

时间:2019-05-23 14:02:38

标签: python regex python-3.x

我想返回从给定字符串中解析出的电池剩余电量的值。这意味着我想获得CurrentCapacity / MaxCapacity。

data = '''
    "SuperMaxCapacity" =0
    "MaxCapacity": +4540;
    'CurrentCapacity'=   2897,
    "LegacyBatteryInfo" = {"Amperage"=18446744073709550521,"Flags"=4,"Capacity"=4540,"Current"=2897,"Voltage"=7283,"Cycle Count"=406}
    "MegaMaxCapacity" = 6700
'''

1 个答案:

答案 0 :(得分:0)

即使您的data输入格式很不稳定,这也可以很好地完成工作并获得匹配:

import re

data = '''
    "SuperMaxCapacity" =0
    "MaxCapacity": +4540;
    'CurrentCapacity'=   2897,
    "LegacyBatteryInfo" = {"Amperage"=18446744073709550521,"Flags"=4,"Capacity"=4540,"Current"=2897,"Voltage"=7283,"Cycle Count"=406}
    "MegaMaxCapacity" = 6700
'''

max_capacity = re.search(r"[\"']MaxCapacity.*?[:=].*?(\d+)", data).group(1)
current_capacity = re.search(r"[\"']CurrentCapacity.*?[:=].*?(\d+)", data).group(1)
print("Max capacity:", max_capacity)
print("Current capacity:", current_capacity)
  

输出:

Max capacity: 4540
Current capacity: 2897