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

时间:2017-08-03 23:45:16

标签: python string

我的字符串格式为my_str = "2a1^ath67e22^yz2p0"。我想根据模式'^(any characters)进行拆分并获取["2a1", "67e22", "2p0"]。该模式也可能出现在字符串的前部或后部,例如^abc27e427c2^abc。我尝试了re.split("(.*)\^[a-z]{1,100}(.*)", my_str),但它只拆分了其中一种模式。我假设在^之后出现的字符数不会大于100。

2 个答案:

答案 0 :(得分:2)

您不需要正则表达式来进行简单的字符串操作,您可以使用

my_list = my_str.split('^')
编辑:对不起,我刚看到你不想仅仅分析^字符,而是分析字符串。因此,您需要正则表达式。

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

如果模式位于字符串的前面或末尾,则会创建一个空列表元素。你可以用

删除它们
my_list = list(filter(None, my_list))

答案 1 :(得分:-1)

如果你想使用正则表达式库,你可以用' \ ^'

分开
re.split('\^', my_str)

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