重复的正则表达式分隔符

时间:2017-02-13 13:41:00

标签: python regex

我正在使用这个代码,我从'网络某处获取,将一行文本拆分为“单词”:

def SplitStringIntoWords(inputString, delimiters=' \t,'):
    words = re.split('[' + delimiters + ']', inputString.strip())
    return len(words), words

但是,我只是注意到它在多个内部空格(或制表符)上表现不佳。

    numWords, words = SplitStringIntoWords('A B')
    print(str(numWords) + ' words')
    print(*words, sep=' ')

    numWords, words = SplitStringIntoWords('A  B')
    print(str(numWords) + ' words')
    print(*words, sep=' ')

    numWords, words = SplitStringIntoWords('A   B')
    print(str(numWords) + ' words')
    print(*words, sep=' ')

给出

  

2个字   A B

     

3个字   A B

     

4个字   A B

在字符串内部折叠多个分隔符(在这种情况下为空格)的最佳方法是什么?

我真的只想为第一个X“单词”做这个,因为除了单词5之外的所有内容都是自由格式文本,我想我不应该折叠多个空格。但那将是“很高兴”,而不是“必须”。

1 个答案:

答案 0 :(得分:5)

通过向+添加'[' + delimiters + ']',您应该可以获得所需内容。

def SplitStringIntoWords(inputString, delimiters=' \t,'):
    words = re.split('[' + delimiters + ']+', inputString.strip())
    return len(words), words