如何在Lua中查找和替换包含特定字符的单词?
2012-10-18 15:9:31
收藏:0
阅读:158
评论:3
我有一个“词”的字符串,像这样:fIsh mOuntain rIver。这些单词由空格分隔,并且我在字符串的开头和结尾添加了空格,以简化“单词”的定义。
我需要将包含A,B或C的任何单词替换为1,将包含X,Y或Z的任何单词替换为2,并将所有剩余的单词替换为3,例如:
the CAT ATE the Xylophone
首先,将包含A,B或C的单词替换为1,字符串变为:
the 1 1 the Xylophone
接下来,将包含X,Y或Z的单词替换为2,字符串变为:
the 1 1 the 2
最后,替换所有剩余的单词为3,例如:
3 1 1 3 2
最终输出是一个只包含数字的字符串,数字之间带有空格。
- 单词可能包含任何类型的符号,例如:
$5鱼fish可以是一个单词。定义单词开头和结尾的唯一特征是空格。 - 匹配按顺序进行,因此可能包含两个匹配的单词,例如
ZebrA,将被简单地替换为1。 - 该字符串为UTF-8编码。
如何将所有包含这些特定字符的单词替换为数字,最后将所有剩余的单词替换为3?
点赞
用户1008957
尝试下面的代码:
function replace(str)
return (str:gsub("%S+", function(word)
if word:match("[ABC]") then return 1 end
if word:match("[XYZ]") then return 2 end
return 3
end))
end
print(replace("the CAT ATE the Xylophone")) --> 3 1 1 3 2
2012-10-18 15:27:22
用户1542101
Lua中的gsub函数/方法用于替换字符串并检查一个字符串在另一个字符串中出现的次数。 gsub(string old, string from, string to)
local str = "Hello, world!"
newStr, recursions = str:gsub("Hello", "Bye"))
print(newStr, recursions)
Bye, world! 1
newStr是“Bye, world!”,因为 from 被更改为 to, recursions 为1,因为 "Hello" (from)在str中只出现一次。
2012-10-18 20:37:40
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
slnunicode模块提供UTF-8字符串函数。