如何将一串数字和字母拆分为一个字符串列表和一个数字列表



给定一个包含字母和数字序列的字符串(例如):

"GHG-H89KKK90KKP"  

我们有没有办法把这个字符串分成两个列表,一个包含字母,一个包含数字?

["GHG-H", "KKK", "KKP"] 
[89,90]

使用re(正则表达式)库中的re.findall来查找字符串中的模式。第一个表达式(?i)[a-z|-]+查找所有字母序列(忽略大小写),它还包括连字符(-)。第二个表达式[0-9]+查找字符串中的所有数字序列。

import re
string = "GHG-H89KKK90KKP"
print(re.findall("(?i)[a-z|-]+", string))
print(re.findall("[0-9]+", string))

输出:

['GHG-H', 'KKK', 'KKP']
['89', '90']

我相信没有直接的方法,但是您可以使用re库。例如:

import re
s = "GHG-H89KKK90KKP"
out = [c for c in re.split('d', s) if c != '']
print(out)

拆分通过删除'D'非num(或通过使用'D'删除nums来删除非num字符)给您一个num字符列表,然后我们删除空值。print给出:['GHG-H', 'KKK', 'KKP'](对于'd'的使用)

最新更新