用 Lua 的 string.gsub 函数替换模式之间的文本。

如何在Lua中从模式中提取文本。例如

s =“这是一个测试字符串。 <!2014-05-03 23:12:08!>更多内容”

1.我需要的仅仅是日期/时间的结果: 2014-05-03 23:12:08

print(string.gsub(s, "%<!.-%!>"))不起作用 2.我需要所有文本,但不包括日期/时间,如:“这是一个测试字符串。更多内容”

点赞
用户1009479
用户1009479

模式"<!.-!>"可以工作,但你需要使用 string.match 来获取日期/时间部分:

print(string.match(s, "<!(.-)!>"))

请注意,在模式中不需要转义!<。当然,转义它们也不是错误。

为了获取没有日期/时间部分的字符串,请使用空字符串替换它:

local result = string.gsub(s, "<!.-!>", "")
print(result)

你还可以扩展模式. -来更好地验证日期/时间的格式:

result = string.gsub(s, "<!%d%d%d%d%-%d%d%-%d%d%s+%d%d:%d%d:%d%d!>", "")
2014-05-19 03:26:35