首页 > 解决方案 > 在lua中用真正的\n替换\n字符串

问题描述

当一个包含 \n 或 \t 的字符串给出时,lua 中有没有一种方法,我们能够将 \n(real new line) 或 \t(tab) 的真正含义传递给一个可以传递的字符串。这必须在打印之前完成,因为它可以解决问题!但我不想打印更新的字符串!

我使用 gsub 但不知道如何表示实际的新行。(一个制表符可以用一些空格来表示)

标签: lua

解决方案


参考Lua 5.3 Lua 参考手册 6.4 字符串操作 string.gsub

string.gsub (s, pattern, repl [, n])

返回一个副本,s其中模式的所有(或第一个n,如果给定)出现(参见 §6.4.1)已被 指定的替换字符串替换,该替换字符串repl可以是字符串、表或函数。gsub还返回发生的匹配总数作为其第二个值。该名称gsub来自 Global SUBstitution。

如果repl是一个表,则使用第一个捕获作为键来查询每个匹配项的表。

local myString = "hello\\n\\tworld"
print(myString)

hello\n\tworld

print((myString:gsub("\\([nt])", {n="\n", t="\t"})))
hello
  world!!!

推荐阅读