如何在 Lua 中用单词替换多个符号?
2012-4-8 0:14:39
收藏:0
阅读:126
评论:3
我必须将所有这些字符"①②③④⑤⑥⑦⑧⑨⑩"都替换成"\item"。我已经使用了以下代码:
stra = string.gsub(text, "①", "\\item")
strb = string.gsub(stra, "②", "\\item")
strc = string.gsub(strb, "③", "\\item")
strd = string.gsub(strc, "④", "\\item")
stre = string.gsub(strd, "⑤", "\\item")
然而,这个方法很冗长。有没有更简单的方法可以替换所有这些字符?
原文链接 https://stackoverflow.com/questions/10059427
点赞
stackoverflow用户734069
是否有一种更简单的方法来替换所有这些项?
如果没有一个了解 UTF-8 是什么的 Lua 模式匹配库,那就没有了。Lua 不了解 Unicode;它不知道如何搜索 Unicode 符号。
如果使用的是某种非多字节编码,则 John 建议可能有效。但如果是 UTF-8,则不行。
对于您特定的情况,您可以始终这样做:
local symbolsToChange { "â‘ ", "â‘¡", ...}
for i, sym in ipairs(symbolsToChange) do
string.gsub(text, sym, "\\item")
end
2012-04-08 01:51:27
stackoverflow用户837856
local symbols_trans = {
["\226\145\160"]--[[â‘ ]] = "\\item1",
["\226\145\161"]--[[â‘¡]] = "\\bananas",
["\226\145\162"]--[[â‘¢]] = "\\cactus",
["\226\145\163"]--[[â‘£]] = "\\etc",
["\226\145\164"]--[[⑤]] = "\\item5",
["\226\145\165"]--[[â‘¥]] = "\\item6",
["\226\145\166"]--[[⑦]] = "\\item7",
["\226\145\167"]--[[â‘§]] = "\\item8",
["\226\145\168"]--[[⑨]] = "\\item9",
["\226\145\169"]--[[â‘©]] = "\\item10",
}
text = string.gsub(text, "(\266\145.)", symbols_trans)
如果你想用 "\item" 替换所有项目符号:
text = string.gsub(text,
"\266\145[\160-\169]",
"\\item"
)
[\160-\169]
的等价于 [\160\161\162\163\164\165\166\167\168\169]
。请参阅 Lua手册了解有关范围和Lua模式的信息。
你也可以更加花哨一些:
text = string.gsub(text,
"\266\145([\160-169])",
function(c)
return "\\item"..(string.byte(c)-160+1)
end
)
这将把â‘
变成\item1
,â‘¡
变成\item2
,依此类推。
2012-04-08 06:52:06
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在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中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
在教程中所描述的方式使用一个“集合”:http://lua-users.org/wiki/PatternsTutorial
string.gsub(text, "[①②③④⑤⑥⑦⑧⑨⑩]", "\\item")