给定一个包含字母和数字序列的字符串(例如):
"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'的使用)