Lua 基础教学:第十四篇字符串操作与模式匹配 在本篇文章中,我们将探讨 Lua 中的字符串操作与模式匹配。字符串处理是编程中的常见任务,Lua 提供了强大的字符串操作函数和模式匹配功能。 字符串基础在 Lua 中,字符串是不可变的值。可以使用双引号或单引号创建字符串: local str1 = "Hello, Lua!"
local str2 = 'Hello, World!'字符串连接可以使用 .. 运算符连接字符串: local greeting = "Hello, " .. "Lua!"
print(greeting) -- 输出:Hello, Lua!常用字符串函数Lua 提供了一些内置的字符串操作函数,这些函数在 string 模块中定义。 获取字符串长度使用 # 运算符或 string.len 函数获取字符串长度: local str = "Hello, Lua!"
print(#str) -- 输出:11
print(string.len(str)) -- 输出:11字符串查找使用 string.find 函数在字符串中查找子串的位置: local str = "Hello, Lua!"
local start, finish = string.find(str, "Lua")
print(start, finish) -- 输出:8 10字符串替换使用 string.gsub 函数替换字符串中的子串: local str = "Hello, Lua!"
local newStr = string.gsub(str, "Lua", "World")
print(newStr) -- 输出:Hello, World!字符串大小写转换使用 string.upper 和 string.lower 函数转换字符串的大小写: local str = "Hello, Lua!"
print(string.upper(str)) -- 输出:HELLO, LUA!
print(string.lower(str)) -- 输出:hello, lua!字符串格式化使用 string.format 函数格式化字符串: local name = "Lua"
local version = 5.4
local formattedStr = string.format("Hello, %s! Version: %.1f", name, version)
print(formattedStr) -- 输出:Hello, Lua! Version: 5.4模式匹配Lua 的模式匹配功能类似于正则表达式,但语法更简单。常用的模式匹配函数包括 string.match、string.gmatch 和 string.gsub。 基本模式一些常见的模式字符包括: .:匹配任何字符 %a:匹配字母字符 %d:匹配数字字符 %w:匹配字母和数字字符 %s:匹配空白字符 +:匹配前一个字符一次或多次 *:匹配前一个字符零次或多次 ?:匹配前一个字符零次或一次
示例:字符串匹配使用 string.match 函数从字符串中提取匹配的部分: local str = "The price is $100"
local price = string.match(str, "%$%d+")
print(price) -- 输出:$100示例:全局字符串匹配使用 string.gmatch 函数进行全局匹配: local str = "The quick brown fox"
for word in string.gmatch(str, "%a+") do
print(word)
end
-- 输出:
-- The
-- quick
-- brown
-- fox示例:字符串替换使用 string.gsub 函数进行字符串替换: local str = "Hello, Lua! Hello, World!"
local newStr = string.gsub(str, "Hello", "Hi", 1)
print(newStr) -- 输出:Hi, Lua! Hello, World!多行字符串Lua 支持多行字符串,使用双中括号 [[ ]] 来创建: local multiLineStr = [[
This is a
multi-line
string.
]]
print(multiLineStr)
-- 输出:
-- This is a
-- multi-line
-- string.总结在这篇教程中,我们详细介绍了 Lua 中的字符串操作与模式匹配。我们学习了如何获取字符串长度、查找子串、替换子串、转换大小写、格式化字符串以及使用模式匹配进行字符串处理。通过这些功能,可以高效地进行字符串操作和文本处理。在接下来的教程中,我们将探讨 Lua 的文件操作与 IO。 继续关注我们的 Lua 教程系列,如果你有任何问题或建议,请在评论区留言。 |