1

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

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

一开始我想用 RSRP 和下面的正则表达式命令来测试它:

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

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

什么是实现这一目标的好解决方案?

4

1 回答 1

1

我错过了为 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)
于 2018-04-04T13:40:12.343 回答