Anonymous user
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.
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
return str._error( 'Match not found' );
else
return nomatch;
end
else
return result;
|