如何用特定符号分隔字符串并写入列表?

问题描述 投票:0回答:1

我有以下字符串:

my_string='11AB2AB33'

我想将此字符串写入列表中,因此“AB”是此列表的单个元素,如下所示:

['1', '1', 'AB', '2', 'AB', '3', '3']

我尝试这样做

list(my_string)

但是结果并不是我所期望的:

['1', '1', 'A', 'B', '2', 'A', 'B', '3', '3']

我也尝试过

partition
方法:

list(my_string.partition('AB'))

也没有得到预期的结果

['11', 'AB', '2AB33']
python string split partitioning
1个回答
2
投票

您可以使用 re.findall 并使用管道

|
来匹配 AB 或非空白字符
\S
如果您还想匹配空格,您可以使用
.
而不是
\S

您可以在 regex101 上查看匹配项

my_string='11AB2AB33'
print(re.findall(r'AB|\S', my_string))

输出

['1', '1', 'AB', '2', 'AB', '3', '3']

如果您想使用分割,并且只有字符 A-Z 或数字 0-9,您可以使用非字边界来获得右侧直接是 AB 或数字的位置。

您可以在 regex101 上查看匹配项

my_string='11AB2AB33'
print(re.split(r"\B(?=AB|\d)", my_string))

输出

['1', '1', 'AB', '2', 'AB', '3', '3']
© www.soinside.com 2019 - 2024. All rights reserved.