2016-07-29 65 views
2

我有這個字符串如何隔離由Lua中的空格分隔的非英語單詞?

​​

如何將其切成像這樣的數組?

Hello 
there, 
this 
is 
some 
line-aa. 

這是我迄今

function sliceSpaces(arg) 
    local list = {} 
    for k in arg:gmatch("%w+") do 
    print(k) 
    table.insert(list, k) 
    end 
    return list 
end 

local sentence = "مرحبا يا اخوتي" 
print("sliceSpaces") 
print(sliceSpaces(sentence)) 

這個代碼適用於英文文本,而不是試圖阿拉伯語,我怎樣才能使它阿拉伯語工作嗎?

回答

2

Lua字符串是字節序列,不是Unicode字符。模式%w與字母數字字符匹配,但僅適用於ASCII。

相反,使用%S匹配一個非空白字符:

for k in arg:gmatch("%S+") do 
+0

工作,這是什麼意思+? – DeyaEldeen

+0

@DeyaEldeen是的,因爲'+'匹配一個或多個。但是,請注意,一個阿拉伯字符實際上是2個或更多個字節,具體取決於編碼。 –

相關問題