如何在 Lua 中分离由空格分隔的非英文单词?

我有这个字符串

"Hello there, this is some line-aa."

如何将其切片成以下数组?

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))

此代码适用于英语文本,但不适用于阿拉伯语,我应该如何让它也适用于阿拉伯语?

点赞
用户1009479
用户1009479

Lua 字符串是字节序列,不是 Unicode 字符。模式 %w 匹配字母数字字符,但仅适用于 ASCII。

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

for k in arg:gmatch("%S+") do
2016-07-29 07:20:40