0

我有一个长度和值会有所不同的输出,我希望从中提取一个值。

这是我的输出:

'+CPBR: 1,"111",129,"0|2|XX"^M'

在这种情况下,我想提取“XX”,

但是,如果值为:

'+CPBR: 1,"111",129,"01|2|9X"^M'

有人知道这样做的好方法吗?

4

2 回答 2

1

您可以使用这样的正则表达式

>>> 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'

这将匹配 | 之间的所有内容 和 " 不包含任何字符 (|")。

于 2013-02-19T13:50:29.787 回答
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'
于 2013-02-19T13:51:32.027 回答