当前位置: 首页 > ds >正文

【Lua】题目小练13

-- 1. 写一个函数,提取字符串中所有邮箱地址(格式:xxx@yyy.zzz)。

local function matchEmail(s)local emails = {}for email in string.gmatch(s, "[%w%.%-_]+@[%w%.%-_]+%.%a+") dotable.insert(emails, email)endreturn emails
endlocal t = matchEmail("请联系我:test123@abc.com 或者 other_mail@163.cn,谢谢")
for _, e in ipairs(t) doprint(e)
end

-- 2. 编写函数,判断一个字符串是否只包含字母和数字。

local function isAlnum(s)return s:match("^[%w]+$") ~= nil
endprint(isAlnum("abc123"))     -- true
print(isAlnum("abc-123"))    -- false

-- 3. 编写函数,找出字符串中第一个不重复的字符。

local function firstUniqueChar(s)local freq = {}for c in s:gmatch(".") dofreq[c] = (freq[c] or 0) + 1endfor i = 1, #s dolocal c = s:sub(i,i)if freq[c] == 1 thenreturn cendendreturn nil
endprint(firstUniqueChar("abcdadbcg"))  -- g

-- 4.写一个函数,提取 URL 中的域名(例如从 https://openai.com/docs 提取 openai.com)。

local function getUrlName(s)if type(s) ~= "string" thenprint("请输入字符串")return nilendreturn s:match("://([^/]+)")
endprint(getUrlName("https://openai.com/docs"))

-- 5. 编写函数,将字符串中的所有 HTML 标签去掉,只保留纯文本。

local str = "<p>Hello</p><b>World</b>"
local newStr, count = str:gsub("<.->", "")
print(newStr)
http://www.xdnf.cn/news/19820.html

相关文章:

  • 多线程的三种实现方法
  • C#基础(⑦user32.dll)
  • 各省市信息化项目管理办法中的网络安全等级保护如何规定的?
  • 前缀树约束大语言模型解码
  • 05 Centos 7尝试是否有网络
  • 深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)
  • 解锁WebRTC在数字人领域的无限潜能
  • 【音视频】火山引擎实时、低延时拥塞控制算法的优化实践
  • centos系统如何判断是是x86还是x64?
  • ansible变量+管理机密
  • AV1 HEADERS详解
  • 专为 SOC 分析师和 MSSP 设计的威胁搜寻指南
  • flink中的窗口的介绍
  • mysql5.6+分页时使用 limit+order by 会出现数据重复问题
  • Mysql杂志(七)
  • Shell脚本入门:从零到精通
  • C# 原型模式(C#中的克隆)
  • “转”若惊鸿,电磁“通”——耐达讯自动化RS485转Profinet点亮能源新章
  • 【NestJS】HTTP 接口传参的 5 种方式(含前端调用与后端接收)
  • 【卷积神经网络】卷积神经网络的三大核心优势:稀疏交互、参数共享与等变表示
  • C++之基于正倒排索引的Boost搜索引擎项目介绍
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘black’问题
  • 【提示词】...(后续单元)在Prompt 的作用
  • 【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
  • 在Docker中安装MySQL时3306端口占用问题
  • 论文学习30:LViT: Language Meets Vision Transformerin Medical Image Segmentation
  • 使用云手机进行游戏搬砖划算吗?
  • 国内真实的交换机、路由器和分组情况
  • 【保姆级喂饭教程】把chrome谷歌浏览器中的插件导出为CRX安装包
  • LeetCode 925.长按键入