gpt4 book ai didi

string - 与 Lua 5.1 中的 "[\0-\x7F\xC2-\xF4][\x80-\xBF]*"等效模式

转载 作者:行者123 更新时间:2023-12-02 06:51:28 26 4
gpt4 key购买 nike

何时 answering this question ,我编写了这段代码来迭代字符串中的 UTF-8 字节序列:

local str = "KORYTNAČKA"
for c in str:gmatch("[\0-\x7F\xC2-\xF4][\x80-\xBF]*") do
print(c)
end

在Lua 5.2中可以正常工作,但是在Lua 5.1中却报错:

malformed pattern (missing ']')

我记得在Lua 5.1中,不支持字符串文字\xhh,所以我将其修改为:

local str = "KORYTNAČKA"
for c in str:gmatch("[\0-\127\194-\244][\128-\191]*") do
print(c)
end

但是错误仍然存​​在,如何修复它?

最佳答案

请参阅Lua 5.1 manual on patterns.

A pattern cannot contain embedded zeros. Use %z instead.

在 Lua 5.2 中,这一点已更改,以便您可以使用 \0 代替,但在 5.1 中则不然。只需将 %z 添加到第一组并将第一个范围更改为 \1-\127

关于string - 与 Lua 5.1 中的 "[\0-\x7F\xC2-\xF4][\x80-\xBF]*"等效模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22956136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com