如何从字符串的特定部分打印文本?

我想知道如何从句子的特定部分获取文本,就像这样。 Hello(新文本)。,括号里写着新文本,我想找到括号里的文本并且只打印括号里的文本。

点赞
用户14208240
用户14208240

将下面翻译成中文并且保留原本的 markdown 格式:

最简单的方法是通过从字符串中移除 Hello 来达到目的。

local msg = "Hello (obama)"
msg = msg:gsub("Hello %(", ""):gsub("%)", "")

如果字符串的第一部分是动态的,而不是固定的 Hello ,你可以尝试以下方法:

local msg = "Bye (obama)"
local pattern = "%p.+%p"
print(({string.match(msg, pattern):gsub("%)", ""):gsub("%(", "")})[1])

这种解决方案可能不是最好和最有效的,但它确实有效。希望对你有所帮助。如果你有任何疑问,请让我知道。

2021-01-25 03:12:30
用户7396148
用户7396148

你可以使用包裹文本的 () 的方法,利用 string.match 进行查询:

str = "Hello (new text)"
print(str:match("%((.+)%)"))

%((.+)%)") 是一个模式,它捕获了在 () 之间的每个字符。

资源: Lua 5.3 参考手册 - 6.4.1 模式匹配

2021-01-25 05:00:03