1
local a = "te\st"
local b = string.gsub(a,'\','\\\\')
assert(false,b)

私は何を間違っていますか?

私がするとき、私は文字列が印刷されるassert画面にそれをしたい...しかし、それは機能していませんte\st

Lua テーブルにデコードしたい JSON ファイルがあります。何も出力する必要はありませんassert。ローカルの問題をテストするためだけに実行しました。

したがって、必要なのは、すべてのデータを JSON ファイルに保持することです'\'

4

4 に答える 4

3

[[]]代わりに、""または''バックスラッシュに特別な意味を持たせたくない場合に使用します。

マニュアルのリテラル文字列について読んでください。

于 2011-02-14T16:36:49.300 に答える
2

%代わりに文字でエスケープしようとしましたか\

これが役立つかどうかはわかりませんが、Lua のgsub文字列に、文字どおりに処理したい特殊文字を一致させるのに非常に苦労していました...\エスケープ文字として使用する代わりに、または文字を 2 倍にして、%文字どおりに処理するために特殊文字の前に付ける必要がありました。

于 2011-12-14T17:58:13.590 に答える
0

gsubは必要ありません。しかし、ここにとにかくあります。

local a = "te\\st"
local b = string.gsub(a,'\\','\\')
assert(false,b)
于 2011-02-14T16:46:35.843 に答える
0

あなたの質問はあまりにも明確ではなかったので、私はあなたが何を意味するのか 100% 確信が持てません. b が文字列 "te\st" と等しいときにアサートを実行するということですか? もしそうなら、あなたは簡単に行うことができます:

assert(b ~= "te\st")

それとも...

assert(b ~= a)
于 2011-02-14T16:30:56.143 に答える