如何使用Python基于特定模式分割字符串?

2024-03-28 19:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字符串的格式是my_str = "2a1^ath67e22^yz2p0"。我想根据模式'^(any characters)进行分割,得到["2a1", "67e22", "2p0"]。模式也可以出现在字符串的前面或后面,例如^abc27e427c2^abc。我试过re.split("(.*)\^[a-z]{1,100}(.*)", my_str),但它只分裂了其中一种模式。我在这里假设^后面出现的字符数不会大于100。你知道吗


Tags: 字符串remy格式模式any字符split
2条回答

如果你想使用regex库,你可以用“\^”来分割

re.split('\^', my_str)

# output : ['2a1', 'ath67e22', 'yz2p0']

简单的字符串操作不需要regex,可以使用

my_list = my_str.split('^')

EDIT:抱歉,我刚刚看到您不希望仅对^字符进行拆分,但也不希望对以下字符串进行拆分。所以你需要正则表达式。你知道吗

my_list = re.split('\^[a-z]+', my_str)

如果模式位于字符串的前面或结尾,这将创建一个空列表元素。您可以使用

my_list = list(filter(None, my_list))

相关问题 更多 >