This library will convert a fully-formatted text string to its original arguments given a format string.
It is essentially the opposite of string.format.
local LibDeformat = LibStub("LibDeformat-3.0") LibDeformat("Hello, friend", "Hello, %s") => "friend" LibDeformat("Hello, friend", "Hello, %1$s") => "friend" LibDeformat("Cost: $100", "Cost: $%d") => 100 -- note that it converted it back to a number LibDeformat("Cost: $100", "Cost: $%1$d") => 100 LibDeformat("Alpha, Bravo", "%s, %s") => "Alpha", "Bravo" LibDeformat("Alpha, Bravo", "%1$s, %2$s") => "Alpha", "Bravo" LibDeformat("Alpha, Bravo", "%2$s, %1$s") => "Bravo", "Alpha" -- this can happen in foreign languages LibDeformat("Hello, friend", "Cost: $%d") => nil -- nil is returned when there is no match