我想从字符串中提取字符串,其值将更改

时间:2013-02-19 13:46:17

标签: python

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

这是我的输出:

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

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

但是,我想提取" 9X"如果值是:

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

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

2 个答案:

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