lua中 string.match返回值

在 Lua 中,string.match 函数用于从字符串中提取与模式匹配的内容,其返回值取决于模式中的捕获组数量和匹配结果。

  1. 没有捕获组

    • 如果匹配成功,返回整个匹配的子串
    • 如果匹配失败,返回 nil
    Lua 复制代码
    local str = "hello world"
    local result = string.match(str, "world")
    print(result)  -- 输出 "world"
  2. 有一个捕获组

    • 匹配成功时,返回该捕获组的内容
    • 匹配失败时,返回 nil
    Lua 复制代码
    local str = "age: 25"
    local age = string.match(str, "age: (%d+)")
    print(age)  -- 输出 "25"
  3. 有多个捕获组

    • 匹配成功时,返回多个值,分别对应各个捕获组的内容
    • 匹配失败时,返回 nil
    Lua 复制代码
    local str = "name: Alice, age: 30"
    local name, age = string.match(str, "name: (%a+), age: (%d+)")
    print(name, age)  -- 输出 "Alice" "30"
  4. 注意事项

    • 即使捕获组没有匹配到内容(如可选模式),也会返回空字符串 ""
    • 当模式匹配到多个位置时,只会返回第一个匹配的结果

总结来说,string.match 的返回值数量等于模式中捕获组的数量,每个返回值对应一个捕获组的内容;没有捕获组时返回整个匹配串;匹配失败则返回 nil

相关推荐
笑虾8 小时前
cocos2d-x lua 加载 Cocos Studio 导出的 csb
游戏引擎·lua·cocos2d
xingpanvip10 小时前
星盘接口开发文档:日返比接口指南
开发语言·lua
xingpanvip1 天前
星盘接口开发文档:天象盘接口指南
android·开发语言·python·php·lua
tianyuanwo1 天前
Rust RPM Spec 中的动态宏定义:原理、原因与低版本兼容方案
rust·lua·spec
tianyuanwo1 天前
rpm spec文件为什么有时调用lua脚本语言而不是shell
lua·spec
liulilittle2 天前
递归复制搜索所有的lua文件到指定目录
java·开发语言·lua·cmd
上海合宙LuatOS2 天前
LuatOS 课程-011 讲:GNSS应用开发
网络·物联网·lua·luatos
LcGero3 天前
游戏引擎Luanti的前世今生与技术解析
游戏引擎·lua·游戏开发·我的世界·luanti
绿草在线4 天前
SpringBoot请求与响应全解析
spring boot·后端·lua
心之所向,自强不息5 天前
VSCode + EmmyLua 调试 Unity Lua(最简接入 + 不阻塞运行版)
vscode·unity·lua