lpeg.Ct
Lua function

lpeg.Ct

Summary

Creates a table capture

Prototype

lpeg.Ct (patt)



Description

This capture creates a table and puts all values from all anonymous captures made by patt inside this table in successive integer keys, starting at 1. Moreover, for each named capture group created by patt, the first value of the group is put into the table with the group name as its key. The captured value is only the table.

The following code splits a string using a given pattern sep as a separator:

If the split results in too many values, it may overflow the maximum number of values that can be returned by a Lua function. In this case, we should collect these values in a table:

function split (s, sep)
sep = lpeg.P(sep)
local elem = lpeg.C((1 - sep)^0)
local p = lpeg.Ct(elem * (sep * elem)^0) -- make a table capture
return lpeg.match(p, s)
end



See Also ...

Topics

DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_lpeg Lua LPEG library
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_tables Lua table functions
DOC_lua_utils Lua utilities
DOC_regexp Regular Expressions
DOC_scripting Scripting

Lua functions

LUA_lpeg.C lpeg.C (Creates a simple capture)
LUA_lpeg.Carg lpeg.Carg (Creates an argument capture)
LUA_lpeg.Cb lpeg.Cb (Creates a back capture)
LUA_lpeg.Cc lpeg.Cc (Creates a constant capture)
LUA_lpeg.Cf lpeg.Cf (Creates a fold capture)
LUA_lpeg.Cg lpeg.Cg (Creates a group capture)
LUA_lpeg.Cmt lpeg.Cmt (Creates a match-time capture)
LUA_lpeg.Cp lpeg.Cp (Creates a position capture)
LUA_lpeg.Cs lpeg.Cs (Creates a substitution capture)
LUA_lpeg.locale lpeg.locale (Returns a table of patterns matching the current locale)
LUA_lpeg.match lpeg.match (Matches a pattern against a string)
LUA_lpeg.P lpeg.P (Converts a value into a pattern)
LUA_lpeg.print lpeg.print (Outputs debugging information to stdout)
LUA_lpeg.R lpeg.R (Returns a pattern that matches a range of characters)
LUA_lpeg.S lpeg.S (Returns a pattern that matches a set of characters)
LUA_lpeg.type lpeg.type (Tests if a value is a pattern)
LUA_lpeg.V lpeg.V (Creates a non-terminal variable for a grammar)
LUA_lpeg.version lpeg.version (Returns the LPeg version)

(Help topic: lua=lpeg.Ct)

DOC_contents Documentation contents page