如何使用多个分隔符拆分 Python 中的字符串?

How do you split a string in Python with multiple delimiters?

例如,我可能想将 "Hello>>>World!!!!2]]splitting" 拆分为 ["Hello", "World","2","splitting"]。它不需要是 ^that^,但我想用多个(比如 5 个)定界符拆分一个字符串。 谢谢。

编辑:我还想保留分隔符,使其成为 ["Hello", ">>>", "World", "!!!!", "2", "]]", "splitting"]

这是我尝试过的方法:

>>> string = "Hello>>>World!!!!2]]splitting"
>>> import re
>>> re.split("(\W)>>>|!!!!|]]", string)
['Hello>>>World', None, '2', None, 'splitting']

(我是 Regex 的新手)

import re

a = 'Hello>>>World!!!!2]]splitting'

print(re.findall('\W+|\w+',a))

['Hello', '>>>', 'World', '!!!!', '2', ']]', 'splitting']

您正在做的是查找所有单词字符 非单词字符。

要使用 re.split 执行此操作,您可以执行以下操作:

re.split(r'(>+|!+|]+)', string)

简单解释一下:

  • 您拆分了一个或多个不同的分隔符(>!])。
  • 为了在结果中包含分隔符,您通过在其周围放置括号将模式置于捕获组中。