如何在Python中使用多字符分隔符进行拆分?

时间:2018-06-08 05:18:20

标签: python regex

我有一个字符串:

string = 'i-phone is popular - many people like it (user-friendly system, fast, good support)'

如何使用正则表达式将其拆分为:

split_string = ['i-phone', 'is', 'popular', 'many', 'people', 'like',  'it', 'user-friendly', 'system', 'fast', 'good', 'support']

问题是-包含2个空格和1个连字符。

我试过了:     split_string = re.split(' [() - ]',string) 但我得到了:

['i-phone', 'is', 'popular', '-', 'many', 'people', 'like', 'it', '', 'user-friendly', 'system,', 'fast,', 'good', 'support', '']

感谢。

1 个答案:

答案 0 :(得分:3)

尝试使用此正则表达式进行拆分:

\s+(?:[()-]\s*)?|[,()]\s*

<强> Click for Demo

<强>解释

  • \s+ - 匹配1 + white-spaces
  • (?:[()-]\s*)? - 匹配()-,然后匹配0 +以上的空格。最后的?使此子部分成为可选
  • | - 或
  • [,()]\s* - 匹配,(),后跟0 +空格