如何处理阿拉比语中的重复字母

2024-06-25 05:28:57 发布

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

我想用一个字符替换重复字符来规范阿拉伯字符串。例如:单词

 رااااائع

将规范化为

^{pr2}$

我找到了一个适合英语的正则表达式(python):

s="I loooooooooooooooooove  you" 
s = re.sub(r'(.)\1+', r'\1', s) // s= "I love you"

但是,这个正则表达式不适用于阿拉伯语字符串。我不理解原因。我想知道是否有人能帮助我,并提前表示感谢。在


Tags: 字符串re规范you原因字符规范化单词
3条回答

尝试以下操作:

import itertools
string = u"رااااائع"
''.join(char for char, _ in itertools.groupby(string))

我不能用阿拉伯语测试它,但它可以用普通的字符串

参考号:itertools.groupby

您正在转换无法转换为utf-8的字符。在

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd8 in position 0: ordinal not in range(128)

我建议您使用忽略或替换:

v= var.encode('utf-8', 'ignore')

或者:

^{pr2}$

Reference

您需要在代码中添加以下行: from __future__ import unicode_literals

# encoding: utf-8
from __future__ import unicode_literals
import re
s="رااااائع"

s = re.sub(r'(.)\1+', r'\1', s)
print s

输出:

^{pr2}$

相关问题 更多 >