如何使用多个分隔符拆分 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)
简单解释一下:
- 您拆分了一个或多个不同的分隔符(
>
、!
、]
)。
- 为了在结果中包含分隔符,您通过在其周围放置括号将模式置于捕获组中。
例如,我可能想将 "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)
简单解释一下:
- 您拆分了一个或多个不同的分隔符(
>
、!
、]
)。 - 为了在结果中包含分隔符,您通过在其周围放置括号将模式置于捕获组中。