2

我必须将所有这些字符“①②③④⑤⑥⑦⑧⑨⑩”替换为“\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")

但是,这非常冗长。有没有更简单的方法来替换所有这些项目?

4

3 回答 3

3
于 2012-04-08T06:52:06.557 回答
2

使用教程中描述的“集合”:http: //lua-users.org/wiki/PatternsTutorial

string.gsub(text, "[①②③④⑤⑥⑦⑧⑨⑩]", "\\item")
于 2012-04-08T00:20:33.557 回答
2

有没有更简单的方法来替换所有这些项目?

并非没有一个知道 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-08T01:51:27.380 回答