擅长:python、mysql、java
<p>您可以使用序号映射构建自己的翻译表来替换字符,对于每一组字符,您需要一个单独的表(用于元音)。这只是一个局部的例子,但应该能让你知道如何去做。在</p>
<hr/>
<p><em>注意</em>您需要为其他字符指定转换表。如果需要,还可以将一个阿拉伯字符翻译成多个拉丁字符。如果将输出与请求进行比较,则转换表中的所有字符似乎都正确匹配。在</p>
<pre><code>import re
s1 = {u'ء',u'ە',u'ك',u'گ'} # g, k, e, hamza
t1 = {ord(u'ا'):u'ә', # first case
ord(u'و'):u'ѳ',
ord(u'ى'):u'i',
ord(u'ۇ'):u'ü',
ord(u'ڭ'):u'ng'} # with double
t2 = {ord(u'ا'):u'a', # second case
ord(u'و'):u'o',
ord(u'ى'):u'i',
ord(u'ۇ'):u'u',
ord(u'ڭ'):u'ng'} # with double
def subst(word):
if any(c in s1 for c in word):
return word.translate(t1)
else:
return word.translate(t2)
s = u'سالەم ورتا ءۇي سوزمەن الما ۇل مەنىڭ اتىم شالقار'
print re.sub(ur'(\S+)', lambda m: subst(m.group(1)), s)
# output: سәلەم oرتa ءüي سѳزمەن aلمa uل مەنing aتiم شaلقaر
# requested: sәlêm orta üy sѳzmên alma ul mêning atim xalқar
</code></pre>