我正在处理推文,我希望将所有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 '
答案 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)