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