如何在Lua中使用特殊字符"\"进行分割?

我尝试使用"\"进行分割,但是在Lua中这个字符非常特殊,即使我使用转义字符"%",IDE也会显示一个错误非法的字符串常量

local index = string.find("lua. is \wonderful", "%\\", 1)
点赞
用户9383219
用户9383219

为了在引用的字符串中插入反斜杠 \,需要使用它的转义形式 "\\"。在常规引用的字符串中,\转义字符,因此需要用 \ 对其进行转义。或者您可以使用长字符串语法,该语法不允许转义序列,这已经在之前指出:[[\]]

在作为 模式 使用的字符串中,百分号仅是转义字符。因此,它在 string.findstring.matchstring.gmatchstring.gsub 的第二个参数以及在 string.gsub 的第三个参数中用于魔法字符 ^$()%.[]*+-? 的前面。 %% 表示 %

在存储在内存中的字符串中,百分号仍然存在,但是反斜杠转义序列已替换为相应的字符。当字符串存储在内存中时,\\ 变成了 \。如果您尝试使用 string.gsub 计算字符串 "\\" 中反斜杠的数量,它只会找到一个:select(2, string.gsub("\\", "\\", "")) 返回 1

2018-11-03 15:40:42