将字符串拆分为具有多个字界分隔符的单词

将字符串拆分为具有多个字界分隔符的单词

我想做的是一个相当常见的任务,但我在网上没有发现任何参考。我有标点符号的文本,我想要一个单词的列表。

"Hey, you - what are you doing here!?"

应该是

['hey', 'you', 'what', 'are', 'you', 'doing', 'here']

但是Python的str.split()只适用于一个参数,所以在用空格分隔后,我有所有带有标点符号的单词。有什么想法吗?


30秒到达战场
浏览 881回答 4
4回答

千万里不及你

re.split()re.plit(模式,字符串[,maxsplit=0])将字符串按模式出现的情况拆分。如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。如果maxsplit是非零的,则最多会发生maxsplitplit,并且返回字符串的其余部分作为列表的最后一个元素。(不兼容性注意:在最初的Python1.5版本中,maxsplp被忽略了。这已在以后的版本中得到修正。)>>> re.split('\W+', 'Words, words, words.')['Words', 'words', 'words', '']>>> re.split('(\W+)', 'Words, words, words.')['Words', ', ', 'words', ', ', 'words', '.', '']>>> re.split('\W+', 'Words, words, words.', 1)['Words', 'words, words.']

茅侃侃

另一种不需要regexp的快速方法是首先替换字符,如下所示:>>> 'a;bcd,ef g'.replace(';',' ').replace(',',' ').split()['a', 'bcd', 'ef', 'g']
打开App,查看更多内容
随时随地看视频慕课网APP