Lua匹配字符串中的字符后的所有内容

Chr*_*lli 4 lua lua-patterns

我是Lua的新手,很难理解模式匹配.我试图弄清楚如何在冒号后匹配字符串中的所有内容,并将该部分字符串放入变量中.我在网上四处看看并没有太多运气,或者我只是没有看到它.那我该怎么做呢?

例如,假设我有一个名为my_string等于"hello:hi_there"或类似的变量.如何"hi_there"在不改变的情况下提取到另一个变量my_string

看起来我需要使用string.match(),但是用什么模式来实现我的目标?

Rok*_*Rok 6

您可以通过执行以下操作来实现此目的:

local my_string = "hello:hi_there"
local extracted = string.match(my_string, ":(.*)")
print(extracted)
Run Code Online (Sandbox Code Playgroud)

括号执行模式捕获,点表示任何字符,星形告诉匹配函数模式应重复0次或更多次.它开始匹配:并取出所有内容直到字符串结束.

  • @Altanai你可以做类似`print(string.match("first:second:third",":([^:]+)$"))`的事情。`[^:]` 匹配任何非 `:` 的内容,而 `$` 匹配字符串的结尾。 (2认同)