使用正则表达式规范化文本

时间:2019-03-06 12:45:08

标签: python regex replace text-mining tweets

我正在处理推文,我希望将所有aaaaaaaaaaaahahhh的变体替换为单个表达式“ ah”。但是,使用我的代码,我也替换了我不想更改的单个“ a”和“ and”。

a = 'trying a aa aaaaaa aaaah and aaaahhh aaaaaaaahhh '
re.sub('a+h*','ah',a)

我这样获得:

Current output: 'trying ah ah ah ah ahnd ah ah '

但是我想要的是:

Desired output: 'trying a ah ah ah and ah ah '

1 个答案:

答案 0 :(得分:2)

在当前表达式中,a+与一个a相匹配。您希望匹配以至少两个 a开头。

s = 'a ah aah aa
re.sub('aa+h*','ah',s) # 'a ah ah ah'

这可以用匹配{x,[y]}个或更多x次的量词y来概括。

re.sub('a{2,}h*','ah',s)