Module:String: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
add nomatch option to str.match
(adds updated match support with wider parameter choices, whitespace handling, etc.)
(add nomatch option to str.match)
Line 113:
 
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
 
Parameters
Line 128:
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain_flagplain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
 
If invoked using named parameters, Mediawiki will automatically remove any leading or
Line 148 ⟶ 149:
]]
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
local s = new_args['s'] or '';
local start = tonumber( new_args['start'] ) or 1;
Line 154 ⟶ 155:
local pattern = new_args['pattern'] or '';
local match_index = math.floor( tonumber(new_args['match']) or 1 );
local nomatch = new_args['nomatch'];
if s == '' then
Line 204 ⟶ 206:
if result == nil then
returnif str._error(nomatch 'Match== notnil found' );then
return str._error( 'Match not found' );
else
return nomatch;
end
else
return result;
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu