使用正则表达式标准化文本[复制]

问题描述 投票:0回答:1

我正在使用推文,我想将aa aaaa aaah ahhh的所有变体替换为单个表达式'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 '
python regex replace text-mining tweets
1个回答
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)

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.