我需要一些有关 python 正则表达式的帮助。
我的“有效负载”字符串看起来像这样“status=0/eStopStatus=2/version=1.0.16/runTime=005320”
我的代码使用以下解析出变量和值的列表:
variables = re.findall(r'([\w]+)=', payload)
values = re.findall(r"[-+]?(?:\d*\.*\d+)", payload)
我的变量被正确解析为:
status
eStopStatus
version
runTime
但是双.在我的版本中,值 1.0.16 超出了我的值,我得到了
0
2
1.0
.16
005320
我必须承认我正在努力理解使用正则表达式的参数语法。
任何帮助表示赞赏
你需要正则表达式吗?这里有明确的分隔符:
/
分隔键值对,=
分隔键与其值。
string = "status=0/eStopStatus=2/version=1.0.16/runTime=005320"
vars = dict([substring.split("=") for substring in string.split("/")])
print(vars)
# {'status': '0', 'eStopStatus': '2', 'version': '1.0.16', 'runTime': '005320'}