Micropython - 正则表达式

时间:2018-04-04 13:35:35

标签: micropython

我有以下字符串:['', '+VZWRSRP: 64,6300,-101.70', '', 'OK', '']

我尝试将第二个逗号后面的所有内容放入变量PCI,将第三个逗号后的所有内容变为变量earfcn,将第四个逗号后的所有内容放入变量RSRP。

首先,我想用RSRP和以下的regex命令测试它:

cellinfo = ['', '+VZWRSRP: 64,6300,-101.70', '', 'OK', '']
rsrp = re.search('-(.+?)\'', cellinfo)

但不知怎的,我无法让它发挥作用。

实现这一目标的好方法是什么?

1 个答案:

答案 0 :(得分:0)

我错过了为micropython指定的问题,我没有使用过,这个答案适用于普通的python

import re
input_string = ", '+VZWRSRP: 64,6300,-101.70', '', 'OK', "
m = re.search(',.*?:(.*?),(.*?),(.*?),.*?,', input_string)
PCL = m.group(1)
earfcn = m.group(2)
RSRP = m.group(3)

返回:

  • PCL = 64
  • earfcn = 6300
  • RSRP = -101.70'

如果您希望输出仅包含可以转换为整数或浮点值的值:

part = ".*?(-*\d+\.*\d*).*?"
m = re.search(',.*?:{},{},{},.*?,'.format(part,part,part), input_string)

会做的伎俩。

如果你的字符串是'+ VZWRSRP:64,6300,-101.70',请使用

part = ".*?(-*\d+\.*\d*).*?"
m = re.search('.*?:{},{},{}'.format(part,part,part), input_string)