lualua-patterns

Lua Match Everything After Character in String


I am new to Lua, and hardly understand pattern matching. I am trying to figure out how to match everything in a string after a colon, and put that portion of the string into a variable. I haven't had much luck by looking around online, or maybe I am just not seeing it. So how would I do this?

For example, say I have a variable called my_string that is equal to "hello:hi_there" or something like that. How can I extract "hi_there" to a another variable without changing my_string?

It looks like I would need to use string.match(), but what pattern would be used to achieve my goal?


Solution

  • You can achieve that by doing something like this:

    local my_string = "hello:hi_there"
    local extracted = string.match(my_string, ":(.*)")
    print(extracted)
    

    The parentheses do a pattern capture, the dot means any character and the star tells the match function that the pattern should be repeated 0 or more times. It starts matching at the : and takes everything until the end of the string.