2016-07-29 33 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个或更多个字节,具体取决于编码。 –

相关问题