Lua gmatch 奇数字符(斯洛伐克字母)

2024-01-05

我正在尝试从斯洛伐克语单词的字符串中提取字符。例如,“TURTLE”这个词是“KORYTNAČKA”。但是,当我尝试从字符串中提取“Č”字符时,它会跳过它:

local str = "KORYTNAČKA"
for c in str:gmatch("%a") do print(c) end
--result: K,O,R,Y,T,N,A,K,A

我在读这一页 http://www.lua.org/manual/5.1/manual.html#5.4.1我也尝试过将字符串本身作为一组粘贴,但它出现了一些奇怪的东西:

local str = "KORYTNAČKA"
for c in str:gmatch("["..str.."]") do print(c) end
--result: K,O,R,Y,T,N,A,Ä,Œ,K,A

有人知道如何解决这个问题吗?


Lua 是 8 位干净的,这意味着 Lua 字符串假设每个字符都是一个字节。图案"%a"匹配一字节字符,因此结果不是您所期望的。

图案"["..str.."]"之所以有效,是因为一个 Unicode 字符可能包含多个字节,在这种模式中,它在一组中使用这些字节,以便它可以匹配该字符。


如果使用 UTF-8,则可以使用该模式"[\0-\x7F\xC2-\xF4][\x80-\xBF]*"在 Lua 5.2 中匹配单个 UTF-8 字节序列,如下所示:

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

在 Lua 5.1(Corona SDK 使用的版本)中,使用以下命令:

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

有关此模式的详细信息,请参阅与 Lua 5.1 中的“[\0-\x7F\xC2-\xF4][\x80-\xBF]*”等效模式 https://stackoverflow.com/q/22956136/1009479.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lua gmatch 奇数字符(斯洛伐克字母) 的相关文章

随机推荐

  • 迭代 std::set/std::map 的时间复杂度是多少?

    迭代一次的时间复杂度是多少std set std multiset std map std multimap 我相信它与集合 地图的大小是线性的 但不太确定 语言标准中有规定吗 在C 11工作草案中 可以找到答案 迭代器 要求 一般 p8
  • Visual Studio 2017 扩展开发

    您好 我想将我的扩展升级到 Visual Studio 2017 但我得到了Microsoft VisualStudio Shell RegistrationAttribute错误 但我已经添加了此引用 我在编译时收到此错误 是否有任何参考
  • JNI:拦截本机方法输出

    目前我正在开发一个项目 我需要拦截java本机方法调用的结果以进行进一步分析 有多种方法可以实现这一点 但我选择的方法是 在本机绑定时 将 java 本机方法的地址重新绑定到我自己的包装函数的地址 该函数将自行调用初始本机函数 然后返回其结
  • 将ListView的文本设置在中心 - android

    我尝试在中设置 ListView 的文本center的布局 我使用 LinearLayout 并设置重力 中心 但它总是显示在left 这是布局
  • GKE主节点

    在GKE中 当我们创建节点时 会有一个master节点 同时会创建很多worker节点 我怀疑主节点是我们创建的 提到的副本 还是GKE单独创建的主节点 gke 集群形成的拓扑结构 例如网状 星形 是什么 在 GKE 中 如果您创建一个标准
  • 将 freetype 位图复制到 opengl 纹理时出现问题

    我正在尝试生成字符的所有位图 to 并将它们添加到一个长纹理中 我打算将它们放置在固定宽度的纹理中 但现在我只想确保这个概念可行 But I am having problems Instead of getting the expecte
  • 在移动 Safari 中按 Tab 键浏览输入字段会使浏览器跳转

    有没有办法既能专注于球场 又不会出现这种不和谐的动画 当键盘可见时 这种行为尤其糟糕 Demo http plnkr co edit 9OydOFO0KUeKuaH8u70A p info http plnkr co edit 9OydOF
  • 设置graphql的最大文件上传大小(golang)

    我用 golang 编写了一个服务器 可以使用多部分形式将文件上传到该服务器 我想扩大最大上传大小 在我正在使用的实现的文档站点上 我发现了以下内容 上传最大尺寸 此选项指定用于将请求正文解析为 multipart form data 的最
  • 在显式结构中相互覆盖多个 CLR 引用字段?

    Edit 我很清楚这对于值类型非常有效 我的具体问题是关于将其用于引用类型 Edit2 我还知道您不能在结构中覆盖引用类型和值类型 这仅适用于相互覆盖多个引用类型字段的情况 我一直在修改 NET C 中的结构 我刚刚发现你可以这样做 usi
  • 确定代码圈复杂度的最佳工具[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • DataContractSerialiser 和 Serialized 的问题

    我有一些来自 Net 2 0 程序集的类 这些类被标记为可序列化 在我的项目中 我在我的 Classes 中使用这些类 它们标记有 DataContract IsReference true 和 DataMember 现在我遇到了问题 Da
  • 因为文档的框架是沙盒的并且未设置“允许脚本”权限

    我编写了一个程序 生成一个带有以下标头的 html 文件 但我没有iframe根本没有 更不用说在沙箱里了 当我在浏览器 托管在 Jenkins 服务器上 中打开页面时 我看不到 css 这些是错误 安全策略 我看过一些关于堆栈溢出的帖子
  • manifestPlaceholders 值不是字符串

    在我的 AndroidManifest xml 文件中 我有以下应动态填充的元数据标记
  • Redux Provider 不传递 Props/State

    我使用 create react app 创建了一个 React 应用程序 并向其中添加了 Redux 添加后
  • 为什么 wget 忽略 URL 中的查询字符串?

    我想使用wget下载以下18个HTML文件 http www ted com talks quick list sort date order desc page 18 http www ted com talks quick list s
  • StatsModels的predict函数如何与scikit-learn的roc_auc_score交互?

    我正在尝试理解predictPython statsmodels 中用于 Logit 模型的函数 它的文档是here https www statsmodels org stable generated statsmodels discre
  • SPI 电子墨水显示屏与 PIC 18F46K22 连接时出现问题

    我正在使用一个图18F46K22 https ww1 microchip com downloads en DeviceDoc 40001412G pdf在 SPI 主模式下与Waveshare 1 54 电子纸模组 https www w
  • 为什么仅键查询是免费的?

    根据定价文档here https developers google com appengine pricing a keys only查询是免费的 所以看来你可以通过执行以下操作 伪代码 来保存读取 qo ndb QueryOptions
  • laravel 中带有 join 的子查询

    我即将对查询感到疯狂 有人可以帮助我将查询翻译为在 laravel 中工作 或者以 laravel 方式 编写 查询代码如下 使用MySQL 我遇到的问题是第一个 JOIN 与另一个 JOIN 的子查询 SELECT usr token u
  • Lua gmatch 奇数字符(斯洛伐克字母)

    我正在尝试从斯洛伐克语单词的字符串中提取字符 例如 TURTLE 这个词是 KORYTNA KA 但是 当我尝试从字符串中提取 字符时 它会跳过它 local str KORYTNA KA for c in str gmatch a do