lpeg.Cs
Creates a substitution capture
Prototype
lpeg.Cs (patt)
Description
Creates a substitution capture, which captures the substring of the subject that matches patt, with substitutions. For any capture inside patt with a value, the substring that matched the capture is replaced by the capture value (which should be a string). The final captured value is the string resulting from all replacements.
This example does a job somewhat similar to string.gsub. It receives a pattern and a replacement value, and substitutes the replacement value for all occurrences of the pattern in a given string:
function gsub (s, patt, repl)
patt = lpeg.P(patt)
patt = lpeg.Cs((patt / repl + 1)^0)
return lpeg.match(patt, s)
end
As in string.gsub, the replacement value can be a string, a function, or a table.
This example does a job somewhat similar to string.gsub. It receives a pattern and a replacement value, and substitutes the replacement value for all occurrences of the pattern in a given string:
function gsub (s, patt, repl)
patt = lpeg.P(patt)
patt = lpeg.Cs((patt / repl + 1)^0)
return lpeg.match(patt, s)
end
As in string.gsub, the replacement value can be a string, a function, or a table.
Lua functions
- lpeg.B - Matches patt n characters behind the current position, consuming no input
- lpeg.C - Creates a simple capture
- lpeg.Carg - Creates an argument capture
- lpeg.Cb - Creates a back capture
- lpeg.Cc - Creates a constant capture
- lpeg.Cf - Creates a fold capture
- lpeg.Cg - Creates a group capture
- lpeg.Cmt - Creates a match-time capture
- lpeg.Cp - Creates a position capture
- lpeg.Ct - Creates a table capture
- lpeg.locale - Returns a table of patterns matching the current locale
- lpeg.match - Matches a pattern against a string
- lpeg.P - Converts a value into a pattern
- lpeg.print - Outputs debugging information to stdout
- lpeg.R - Returns a pattern that matches a range of characters
- lpeg.S - Returns a pattern that matches a set of characters
- lpeg.setmaxstack - Sets the maximum size for the backtrack stack
- lpeg.type - Tests if a value is a pattern
- lpeg.V - Creates a non-terminal variable for a grammar
- lpeg.version - Returns the LPeg version