使用正则表达式规范化文本
Normalizing text using regex
我正在处理推文,我希望将 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 '
在您当前的表达式中 a+
匹配一个 a
或更多。您希望比赛至少以 两个 个开始。
s = 'a ah aah aa
re.sub('aa+h*','ah',s) # 'a ah ah ah'
这可以用匹配 x
次或更多次出现的量词 {x,[y]}
概括,最多可选 y
.
re.sub('a{2,}h*','ah',s)
我正在处理推文,我希望将 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 '
在您当前的表达式中 a+
匹配一个 a
或更多。您希望比赛至少以 两个 个开始。
s = 'a ah aah aa
re.sub('aa+h*','ah',s) # 'a ah ah ah'
这可以用匹配 x
次或更多次出现的量词 {x,[y]}
概括,最多可选 y
.
re.sub('a{2,}h*','ah',s)