我希望将单个字符组合在一起,它们之间只有一个空格。
例如:
a b c --> abc [all combined together]
ab c d ef --> ab cd ef [just combine the middle 'c d'
foo bar --> foo bar [nothing between consecutive words]
我可以使用正则表达式re.findall(r'(([A-z] ){2,})' object)
捕获此术语。但是,我不确定如何设置替换部件。
我能想到的唯一方法分三个阶段:
re.findall()
函数搜索字词。re.sub()
替换。 然而,这看起来有点混乱,而且由于我使用了超过10亿的记录,如果可能的话,更愿意只做一个正则表达式语句。
答案 0 :(得分:5)
寻找两个单字母单词,第二个单词作为前瞻,以便下一步检查:
>>> re.sub(r"\b(\w) (?=\w\b)", r"\1", "ab c d e and f")
'ab cde and f'
答案 1 :(得分:0)