我的输出长度和值会有所不同,我希望从中提取一个值。
这是我的输出:
'+CPBR: 1,"111",129,"0|2|XX"^M'
在这种情况下,我想提取" XX",
但是,我想提取" 9X"如果值是:
'+CPBR: 1,"111",129,"01|2|9X"^M'
有人知道这样做的好方法吗?
答案 0 :(得分:1)
你可以像这样使用regular expression:
>>> string = '+CPBR: 1,"111",129,"0|2|XX"^M'
>>> import re
>>> re.search('\|([^|"]+)"',string).group(1)
'XX'
>>> string = '+CPBR: 1,"111",129,"0|2|9X"^M'
'9X'
>>> string = '+CPBR: 1,"111",129,"0|2|ABC"^M'
'ABC'
这将匹配|之间的所有内容和“哪个不包含任何一个字符(|”)。
答案 1 :(得分:1)
In [2]: a=r'+CPBR: 1,"111",129,"0|2|XX"^M'
In [3]: b=r'+CPBR: 1,"111",129,"01|2|9X"^M'
In [4]: a.split('|')[-1][0:2]
Out[4]: 'XX'
In [5]: b.split('|')[-1][0:2]
Out[5]: '9X'