使用多个单词边界分隔符将字符串拆分为单词

829

我认为我想做的是一个相当常见的任务,但我在网上找不到任何参考资料。我有带标点符号的文本,我想要一个单词列表。

"Hey, you - what are you doing here!?"
应该是。
['hey', 'you', 'what', 'are', 'you', 'doing', 'here']

但是 Python 的 str.split() 只能使用一个参数,所以在使用空格分割后会将标点符号与单词分开。有什么解决办法吗?


7
好的,我会尽力以最准确和易懂的方式来翻译这个网页。http://docs.python.org/library/re.html这是Python编程语言中re模块的官方文档。re模块提供了正则表达式的支持,可以用于在文本中搜索、匹配和替换字符串。该文档包含了re模块的所有功能和方法的详细说明,以及使用示例和常见问题解答。如果你需要在Python中使用正则表达式,这个文档将是一个非常有用的参考资料。 - mtasic85
13
Python的str.split()方法也可以不传任何参数来使用。 - Ivan Vinogradov
31个回答

0

我最近需要这样做,但希望有一个函数与标准库的str.split函数相匹配。当使用0或1个参数调用此函数时,该函数的行为与标准库相同。

def split_many(string, *separators):
    if len(separators) == 0:
        return string.split()
    if len(separators) > 1:
        table = {
            ord(separator): ord(separator[0])
            for separator in separators
        }
        string = string.translate(table)
    return string.split(separators[0])

注意:此函数仅在您的分隔符由单个字符组成时才有用(正如我的用例一样)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接