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。

相关推荐
小师兄吃牛肉3 天前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
喜欢的名字被抢了3 天前
09-Redis 进阶原理篇:单线程、多线程、过期、LRU-LFU、Fork 与 Lua
数据库·redis·lua
白山编程大哥4 天前
Lua 中使用 C 语言的用户自定义类型——userdata
c语言·junit·lua
大侠归来6 天前
C++ 与 Lua 的协程交互:从原理到实战
c++·lua·交互
疯狂成瘾者7 天前
海康 Artemis 接口对接
开发语言·lua
一线灵7 天前
跨平台游戏引擎 Axmol-2.11.5 发布
游戏引擎·lua
liulilittle16 天前
麻将结算全链路语义(SETTLE_SEMANTICS)
ai·自动化·llm·mock·lua·测试
liulilittle16 天前
麻将服务器崩溃补偿与异常处理语义(CRASH_SEMANTICS)
ai·自动化·llm·mock·lua·测试·tools
liulilittle16 天前
麻将 UI 层可观察行为(UI_BEHAVIOR)
ai·自动化·llm·mock·lua·测试·tools
liulilittle16 天前
C++ 引擎接口到 mock 的映射(INTERFACE_MAP)
ai·自动化·llm·mock·lua·测试·tools