- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 决策
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件 I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- Lua - 快速指南
- Lua - 有用资源
- Lua - 讨论
Lua - 字符串分割
字符串分割是指我们传递一个正则表达式或模式,可以使用该模式将给定字符串分割成不同的部分的过程。
在 Lua 中,标准库中没有内置的 split 函数,但我们可以使用其他函数来完成 split 函数通常执行的工作。
Lua 中一个非常简单的 split 函数示例是使用 **gmatch()** 函数,然后传递我们希望根据其分割字符串的模式。
示例
请考虑以下示例:
main.lua
local example = "lua is great" for i in string.gmatch(example, "%S+") do print(i) end
输出
lua is great
以上示例对于简单的模式可以正常工作,但当我们想要使用正则表达式,并且我们可以使用默认模式进行分割时,我们可以考虑一个更优雅的示例。
示例
请考虑以下示例:
main.lua
function mysplit (inputstr, sep) if sep == nil then sep = '%s' end local t={} for str in string.gmatch(inputstr, '([^'..sep..']+)') do table.insert(t, str) end return t end ans = mysplit('hey bro whats up?') for _, v in ipairs(ans) do print(v) end ans = mysplit('x,y,z,m,n',',') for _, v in ipairs(ans) do print(v) end
输出
hey bro whats up? x y z m n
广告