python - 按所有分隔符拆分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
情况。
我在这里做错了什么?如何在所有情况下获得所需的输出?
解决方案
\w
匹配字母、数字和下划线。您需要更具体地了解您认为的单词字符。
list_of_words = re.findall(r"[a-z0-9']+", input_string, re.I)