2024-03-28 19:04:51 发布
网友
我的字符串的格式是my_str = "2a1^ath67e22^yz2p0"。我想根据模式'^(any characters)进行分割,得到["2a1", "67e22", "2p0"]。模式也可以出现在字符串的前面或后面,例如^abc27e4或27c2^abc。我试过re.split("(.*)\^[a-z]{1,100}(.*)", my_str),但它只分裂了其中一种模式。我在这里假设^后面出现的字符数不会大于100。你知道吗
my_str = "2a1^ath67e22^yz2p0"
'^(any characters)
["2a1", "67e22", "2p0"]
^abc27e4
27c2^abc
re.split("(.*)\^[a-z]{1,100}(.*)", my_str)
如果你想使用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))
如果你想使用regex库,你可以用“\^”来分割
简单的字符串操作不需要regex,可以使用
EDIT:抱歉,我刚刚看到您不希望仅对
^
字符进行拆分,但也不希望对以下字符串进行拆分。所以你需要正则表达式。你知道吗如果模式位于字符串的前面或结尾,这将创建一个空列表元素。您可以使用
相关问题 更多 >
编程相关推荐