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

相关推荐
x***r1518 小时前
Postman-win64-7.3.5-Setup安装配置教程(Windows 详细版)
开发语言·lua
我登哥MVP13 小时前
Spring Boot 从“会用”到“精通”:内容协商原理
java·spring boot·后端·spring·java-ee·maven·lua
FFZero12 天前
[mpv脚本系统] (四) 脚本加载与事件循环系统
c语言·音视频·lua·多媒体
多彩电脑3 天前
Lua中的元表里的__index和__newindex
开发语言·lua
zfoo-framework3 天前
通过redis-cli+lua脚本查询redis数据
数据库·redis·lua
kiss strong3 天前
自制请求工具
开发语言·python·lua
闪电悠米3 天前
黑马点评-秒杀优化-04_lua_and_db_fallback
服务器·开发语言·网络·数据库·缓存·junit·lua
闪电悠米4 天前
黑马点评-秒杀优化-03_blocking_queue_async_order
数据库·分布式·oracle·junit·wpf·lua
闪电悠米4 天前
黑马点评-秒杀优化-02_lua_precheck
开发语言·redis·分布式·缓存·junit·wpf·lua
程序员二叉5 天前
【Redis】 高性能核心:IO多路复用+多线程+Pipeline+Lua脚本(面试终极版)
redis·面试·lua