字符串模式简介
本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 36 课,共 54 课。
在上一课中使用 string.gsub() 时,你查找的是空格或特定单词等确切文本。但如果你需要查找“任意数字”或“任意字母”,却不知道具体字符,该怎么办?这时就要用到字符串模式。
Lua 中的字符串模式用于描述你要查找的文本类型,而不是文本的具体内容。它们比正则表达式简单,但足以应对大多数文本处理任务。
Lua 提供了一些称为字符类的特殊代码,用于匹配不同类别的字符。以下是最常见的几种:
%d -- 匹配任意数字(0-9)
%a -- 匹配任意字母(a-z, A-Z)
%s -- 匹配任意空白字符(空格、制表符、换行符)
%w -- 匹配任意字母或数字字符(字母和数字)
%p -- 匹配任意标点符号下面介绍如何将这些模式与 string.find() 搭配使用,以查找字符串中的第一个数字:
local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position) -- 输出:6你也可以使用这些类的大写形式来匹配相反的内容。例如,%D 匹配任何不是数字的字符,而 %A 匹配任何不是字母的字符。
挑战
简单编写一个函数 containsDigit,它接收 text,并返回文本中是否至少包含一个数字。
使用 string.find() 和 %d 字符类,检查字符串中是否存在数字。
参数:
text(字符串):要检查是否包含数字的文本
返回值:如果文本中至少包含一个数字,则返回 true;否则返回 false(布尔值)
亲手试试
function containsDigit(text)
-- 在这里编写代码
end
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Lua 在线编译器