擅长:python、mysql、java
<p>我不会说perl或python(或阿拉伯语),但这是您可以使用的基本思想(使用Javascript,但是应该可以翻译成任何用回调代替的语言):</p>
<pre class="lang-js prettyprint-override"><code>//replace [a-z] with the proper unicode range for arabic
input.replace(/[a-z]+/, function(word){
//replace `[gkeh]` with their arabic equivalents
if(/[gkeh]/.test(word){
return word.replace(/./, function(c){
return withSoftVowels[c]
})
}else{
return word.replace(/./, function(c){
return withHardVowels[c]
})
}
})
</code></pre>
<p>也就是说,将输入拆分为单词,然后根据单词是否包含特定字符,使用两个翻译表中的一个替换该单词中的每个符号。正则表达式可用于两者,也可以按单词边界拆分并在单词内进行替换(同时使用等效的<code>indexOf</code>进行分支)。在</p>
<p>以下是不使用回调的方法(如果Javascript中的字符串是可变的):</p>
^{pr2}$