Micropython-正则表达式

Micropython - Regex

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

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

一开始,我想用 RSRP 和以下正则表达式命令对其进行测试:

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

但不知何故我无法让它工作。

实现此目的的好解决方案是什么?

我没注意到这个问题是针对 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)

returns:

  • 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)