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

これらすべてのアイテムを置き換える簡単な方法はありますか?

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 に答える
2

チュートリアルで説明されているように「セット」を使用します: http://lua-users.org/wiki/PatternsTutorial

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