使用regex规范化文本

2024-06-02 07:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用tweets工作,我想用一个单独的表达“啊”取代所有aaaaaaahhh的变体。但是,使用我的代码,我还替换了我不想更改的单个“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 '

Tags: and代码reoutput变体currenttweetsaa
1条回答
网友
1楼 · 发布于 2024-06-02 07:38:48

在当前表达式中,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)

相关问题 更多 >