【问题标题】:How do you split a string in Python with multiple delimiters?如何在 Python 中使用多个分隔符拆分字符串?
【发布时间】:2015-09-30 00:46:23
【问题描述】:

例如,我想将"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 的新手)

【问题讨论】:

  • 您能否在收到的任何错误消息中显示您的代码?此外,如果您能清楚地指出您的代码的哪些部分遇到了困难,这将有所帮助。
  • @idjaw 我正在上传它,等一下......

标签: python split delimiter


【解决方案1】:

要使用re.split,您可以这样做:

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

简单解释一下:

  • 您在不同分隔符(>!])出现一次或多次时进行拆分。
  • 为了在结果中包含分隔符,您可以通过在其周围放置括号将模式放入捕获组中。

【讨论】:

  • 感谢您的解释
  • 那么这不是说re.split(r'(\+)', string) 会分割空格并保留空格吗?
  • @Henry 是的,试试吧,re.split(r'( )', 'the quick brown fox')
【解决方案2】:
import re

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

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

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

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

【讨论】:

  • 如果拆分空格和换行符并同时保留两者会怎样?
  • 只需更改正则表达式模式。你有一个例子吗?换行符将是 \n\ + 用于空格
猜你喜欢
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 2011-06-27
相关资源
最近更新 更多