如何在python中解析字符串['FED590498']
,以便我可以单独获取所有数值590498
和字符FED
。
一些样品:
['ICIC889150']
['FED889150']
['MFL541606']
和[]不是字符串的一部分......
答案 0 :(得分:5)
如果字母数是可变的,最简单的方法是使用正则表达式:
import re
characters, numbers = re.search(r'([A-Z]+)(\d+)', inputstring).groups()
这假定:
您可以使用{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
是首选方式。