找回密码
马上加入

QQ登录

只需一步,快速开始

搜索
发新帖

0

收听

2

听众

108

主题
发表于 2024-6-20 22:40:31 | 查看: 77| 回复: 0
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 教程系列,如果你有任何问题或建议,请在评论区留言。
您需要登录后才可以回帖 登录 | 马上加入

QQ|Archiver|手机版|小黑屋|alg阿灵戈社区 ( 苏ICP备2023026137号-1|苏ICP备2023026137号-1 )

GMT+8, 2025-3-13 04:39 , Processed in 0.504347 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表