当前位置: 首页 > news >正文

Lua 的 String(字符串) 模块 - 实践

Lua 的 String 模块 提供了强大的字符串处理功能,主要通过 string 模块实现。以下是 Lua string 模块的主要功能和用法:

基础字符串操作

  1. 字符串连接

    • 使用 .. 操作符连接字符串
    local str = "Hello" .. " " .. "World"  -- 结果为 "Hello World"
  2. 字符串长度

    • 使用 # 操作符获取字符串长度
    local len = #"Lua"  -- 结果为 3

常用字符串函数

  1. string.sub(s, i [, j])

    local s = "Programming"
    print(string.sub(s, 4, 7))  -- 输出 "gram"
  2. string.find(s, pattern [, init [, plain]])

    local start, finish = string.find("Hello Lua", "Lua")
    -- start=7, finish=9
  3. string.match(s, pattern [, init])

    local word = string.match("Lua is great", "%a+")  -- 返回 "Lua"
  4. string.gsub(s, pattern, repl [, n])

    local s = string.gsub("Lua Lua Lua", "Lua", "Python", 2)
    -- 结果为 "Python Python Lua"

字符串格式化

  1. string.format(formatstring, ...)
    • 类似 C 的 printf 格式化输出
    • 示例:
    local formatted = string.format("Value: %.2f", 3.14159)
    -- 结果为 "Value: 3.14"

字符串转换

  1. string.upper(s)

    print(string.upper("lua"))  -- 输出 "LUA"
  2. string.lower(s)

    print(string.lower("LUA"))  -- 输出 "lua"

字符串模式匹配(正则表达式)

Lua 提供了轻量级的模式匹配功能:

  1. 字符类

  2. 模式修饰符

示例:

local date = "2023-05-15"
local year, month, day = string.match(date, "(%d+)-(%d+)-(%d+)")
-- year="2023", month="05", day="15"

字符串缓冲区

对于大量字符串拼接,可以使用表作为缓冲区:

local buf = {}
for i = 1, 100 do
buf[#buf+1] = "line " .. i
end
local result = table.concat(buf, "\n")

UTF-8 支持(Lua 5.3+)

Lua 5.3 及以上版本增加了 UTF-8 支持:

local len = utf8.len("你好")  -- 结果为 2

Lua 的字符串处理功能强大而高效,是处理文本数据的理想选择。

http://www.jsqmd.com/news/381481/

相关文章:

  • 算法竞赛进阶指南 # 前缀和 # IncDec 序列
  • 宝藏技能网站
  • 2026年会展服务精选:服务出色企业排行,展厅制作/会展/展览工厂/展会设计/会场布置/展会搭建,会展服务企业怎么选择 - 品牌推荐师
  • 2026年行业内知名的供暖设备源头厂家电话,风幕机/工业型暖风机/工业风幕机,供暖设备生产厂家联系电话 - 品牌推荐师
  • 赶deadline必备!降AIGC网站 千笔·专业降AI率智能体 VS 学术猹
  • 实测对比后AI论文网站 千笔写作工具 VS 笔捷Ai,MBA写论文更高效!
  • 综述不会写?10个AI论文软件测评:MBA毕业论文与科研写作必备工具推荐
  • 97.多数元素
  • Agentic AI最小可用部署方案:基于 SQLite + ChromaDB 构建 openJiuwen 本地轻量化智能体平台
  • 考虑源荷不确定性的综合能源系统多时间尺度优化调度研究 复现代码与详细解释
  • 大模型实习模拟面试之 Agent 可靠性工程:从 0 到 1 构建自动化评估体系,确保业务零崩盘
  • 深入解析:最大面积验证码通用解法
  • 大模型实习模拟面试之 AI 编程的终极权衡:并行效率 vs 逻辑可信,架构的边界何在?
  • 2026 年春节档必看电影推荐:《惊蛰无声》口碑、适合人群及全片单观影指南 - SFMEDIA
  • SVM十年演进
  • 大模型学习路线图(LLM Learning Roadmap):从数学基础到前沿伦理的系统性成长路径
  • Claude Code 从入门到精通:开发者必备终端命令完全指南(附实战)
  • 2026年贵州治面瘫医院权威靠谱榜单 适配各类面瘫患者 精准选型参考 - 深度智识库
  • 天猫购物卡变现不踩坑:这些回收方式最靠谱! - 团团收购物卡回收
  • AI写教材利器来袭!轻松实现低查重,快速编写高质量教材
  • 2026年新型管件评测,中低压厂家高压管件实力剖析,压力容器/耐磨管件/保温管件/管件/法兰管件,高压管件生产厂家推荐 - 品牌推荐师
  • 中医执医备考资料精选大全 - 医考机构品牌测评专家
  • OneTrans:在工业级推荐系统中以单一 Transformer 实现特征交互与序列建模的统一框架
  • AI十年演进
  • 文本分类十年演进
  • 内容不再“拖后腿”,EasyLink重塑非结构化数据处理新范式
  • 2026年贵州治面瘫哪家医院靠谱?专业权威 诊疗效果有支撑 适配各类患者需求 - 深度智识库
  • 从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例 - 详解
  • 智能计算十年演进
  • 超微量分光光度计-核酸蛋白检测仪技术深度解析:从核心原理到应用实践的研究报告