2016-09-17 10 views
1

Я делаю простую функцию, которая должна удалять ташкек из арабского текста, техника замены работает на английском языке, но не для арабского, что бы вы предложили?Как удалить tashkeel из строки в lua?

код Lua: -

function replacePartOfString(arg,old,new) 
    local zzz = arg.gsub(arg, old, new) 
    return zzz 
end 

function wordLengthIgnoringTashkeel(arg) 
    local tashkeelArray = {"َ","ً","ُ","ٌ","ِ","ٍ","ْ","َ"} 

    local tempWord = arg 

    print("tempWord Before"..tempWord) 
    for x=1,#tashkeelArray do 
     replacePartOfString(tempWord,tashkeelArray[x],"") 
    end 
    print("tempWord After"..tempWord) 
end 

результат

tempWord Перед اليوم tempWord После اليوم

в то время как ожидаемый результат

ожидаемого результата

tempWord Перед اليوم tempWord После اليوم

+0

Почему вы установили теги android и ios? – jonathanrz

+1

Вы забыли поймать результат, возвращаемый вашей функцией: tempWord = replacePartOfString (...) ' –

+0

@jonathanrz: потому что я использую corona sdk. – DeyaEldeen

ответ

2

это работает

function replacePartOfString(arg,old,new) 
    return arg.gsub(arg, old, new) 
end 

function wordLengthIgnoringTashkeel(arg) 
    local tashkeelArray = {"َ","ً","ُ","ٌ","ِ","ٍ","ْ","َّ"} 
    local tempWord = arg 
    for x=1,#tashkeelArray do 
     tempWord = replacePartOfString(tempWord,tashkeelArray[x],"") 
    end 
    return #tempWord 
end 
+0

Я думаю, мой ответ такой же, как у вас, но будет приятно, если вы его примете. У меня была аналогичная проблема, когда я хотел, чтобы http post arabil писались в google, и это не сработало. Я должен был сделать таблицу локального chracter и отправить числа в google и напечатать эквивалентное значение таблицы. Я могу сказать, что проблема связана с тем, что арабское слово обрабатывается lua, возможно, как нестандартное. – Amir

1

функция wordLengthIgnoringTashkeel (Arg) локальная tashkeelArray = { "", "", "", "",» " "", "", ""}

локальная tempWord = Arg

печати (" tempWord Bef руда».. tempWord) при х = 1, # tashkeelArray делать tempWord = string.gsub (tempWord, tashkeelArray [х], "") конец печати ("tempWord После того, как" .. tempWord) конец

wordLengthIgnoringTashkeel ("يوم")

+1

Вы всегда можете улучшить свои ответы, форматируя их, в вашем случае, добавляя блок кода, добавляя 4 пробела. http://stackoverflow.com/editing-help Немного объяснения помогут –

 Смежные вопросы

  • Нет связанных вопросов^_^