首页 > 解决方案 > 按所有分隔符拆分python字符串

问题描述

我有以下几句话:

a. 'abc_bank_portfolios'
b. 'abc-bank-portfolios'
c. 'abc/bank portfolios'
d. 'abc.bank.portfolios'

对于上述所有示例,我希望输出为:['abc', 'bank', 'portfolios']

简而言之,我想使用任何分隔符拆分字符串

我的代码如下所示:

import re
list_of_words = re.findall(r"[\w']+", <input_string>)

works for all cases except when there is an underscore.

如果我这样做:re.findall(r"[\w']+", "abc_bank_portfolios"),输出是[abc_bank_portfolios]。我希望它['abc', 'bank', 'portfolios']甚至适用于这种underscore情况。

我在这里做错了什么?如何在所有情况下获得所需的输出?

标签: pythonregexpython-3.x

解决方案


\w匹配字母、数字和下划线。您需要更具体地了解您认为的单词字符。

list_of_words = re.findall(r"[a-z0-9']+", input_string, re.I)

推荐阅读