如何在Lua中搜索Unicode空白字符

时间:2014-04-29 04:39:54

标签: unicode lua whitespace lua-patterns

我想使用Lua在文件中搜索Unicode whitespace chars。对于ASCII,我们可以使用%s,但我没有找到任何东西来搜索Unicode文件中的空白字符。

1 个答案:

答案 0 :(得分:3)

Lua 5.2及更早版本对Unicode的支持很少。

(upcomming)Lua 5.3提供了一个基本的UTF-8库。但是,它仍然不知道字符的含义(如什么是空格字符)。在使用utf8.codes迭代每个代码点后,您需要自己完成该部分。

--table to be filled 
local whitespace = {0x9, 0xA, 0xB, 0xC, 0xD, 0x20, 0x85, 0xA0, 0x1680, 0x2000, 0x2001}

local str = 'hello\u{2000}world\n'
for _, c in utf8.codes(str) do
    for _, v in ipairs(whitespace) do
        if c == v then
            print 'whitespace found'
        end
    end
end