string.find(str, pattern [, init [, plain]]) -- Returns start and end index of match in str
string.match(str, pattern [, index]) -- Matches a pattern once (starting at index)
string.gmatch(str, pattern) -- Returns a function that iterates through all matches in str
string.gsub(str, pattern, repl [, n]) -- Replaces substrings (up to a max of n times)
.
represents all characters
%a
represents all letters
%l
represents all lowercase letters
%u
represents all uppercase letters
%d
represents all digits
%x
represents all hexadecimal digits
%s
represents all whitespace characters
%p
represents all punctuation characters
%g
represents all printable characters except space
%c
represents all control characters
[set]
represents the class which is the union of all characters in set.
[^set]
represents the complement of set
*
greedy match 0 or more occurrences of previous character class
+
greedy match 1 or more occurrences of previous character class
-
lazy match 0 or more occurrences of previous character class
?
match exactly 0 or 1 occurrence of previous character class
Throughout some examples, the notation (<string literal>):function <string literal>
is used, which is equivalent to string.function(<string literal>, <string literal>)
because all strings have a metatable with the __index
field set to the string
table.