用Python解析字符串

时间:2014-03-18 11:47:18

标签: python string-parsing

如何在python中解析字符串['FED590498'],以便我可以单独获取所有数值590498和字符FED

一些样品:

['ICIC889150']
['FED889150']
['MFL541606']

和[]不是字符串的一部分......

2 个答案:

答案 0 :(得分:5)

如果字母数是可变的,最简单的方法是使用正则表达式:

import re

characters, numbers = re.search(r'([A-Z]+)(\d+)', inputstring).groups()

这假定:

  • 字母为大写ASCII
  • 每个输入字符串中至少有1个字符和1个数字。

您可以使用{3, 4}代替+来进一步锁定模式,将重复限制为 3或4 而不是至少为1 等等。

演示:

>>> import re
>>> inputstring = 'FED590498'
>>> characters, numbers = re.search(r'([A-Z]+)(\d+)', inputstring).groups()
>>> characters
'FED'
>>> numbers
'590498'

答案 1 :(得分:1)

鉴于要求总共有3或4个字母,您可以使用:

import re
characters, numbers = re.findall(r'([A-Z]{3,4})(\d+)', 'FED590498')[0]
characters, numbers
#('FED', '590498')

甚至:

ids = ['ICIC889150', 'FED889150', 'MFL541606']
[re.search(r'([A-Z]{3,4})(\d+)', id).groups() for id in ids]
#[('ICIC', '889150'), ('FED', '889150'), ('MFL', '541606')]

根据Martjin的建议,search是首选方式。