在Python中实现tokeniser

时间:2016-06-02 03:44:21

标签: python regex

我正在尝试在python中实现一个tokeniser(不使用NLTK库),它使用空格将字符串拆分为单词。示例用法是:

>> tokens = tokenise1(“A (small, simple) example”)
>> tokens
[‘A’, ‘(small,’, ‘simple)’, ‘example’]

我可以使用正则表达式,但我的返回值包括我不想要的空格。如何根据示例用法获得正确的返回值?

到目前为止我所拥有的是:

def tokenise1(string):
    return re.split(r'(\S+)', string)

然后它返回:

['', 'A', ' ', '(small,', ' ', 'simple)', ' ', 'example', '']

所以我需要摆脱回报中的空白区域

1 个答案:

答案 0 :(得分:-1)

输出有空格,因为您使用()捕获它们。相反,你可以像

一样拆分
re.split(r'\s+', string)
['A', '(small,', 'simple)', 'example']
  • \s+匹配一个或多个空格。