PregMatch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server client function}}
{{Server client function}}
{{New feature/item|4.014|1.4|5106|
{{New items|3.0135|1.3.5|
This function returns all matches.
This function returns all matches.
}}
}}
 
{{Warning|When declaring a pattern string in quotes, the backslash character should be doubled up. e.g. "\\(" will match a single bracket.}}
{{Warning|Multiline flag does not work correctly}}
==Syntax==
==Syntax==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
table pregMatch ( string base, string pattern )
table pregMatch ( string base, string pattern [, int/string flags = 0, int maxResults = 100000 ] )
</syntaxhighlight>
</syntaxhighlight>


Line 13: Line 14:
*'''base:''' The base [[string]] for replace.
*'''base:''' The base [[string]] for replace.
*'''pattern:''' The pattern for match in base string.
*'''pattern:''' The pattern for match in base string.
===Optional Arguments===
*'''flags:''' Conjuncted value that contains flags ( 1 - ignorecase, 2 - multiline, 4 - dotall, 8 - extended, 16 - unicode ) or ( i - Ignore case, m - Multiline, d - Dotall, e - Extended, u - Unicode )
*'''maxResults:''' Maximum number of results to return


===Returns===
===Returns===
Returns an ''[[table]]'' if one match founded and more, ''false'' otherwise.
Returns a ''[[table]]'' if one or more match is found, ''false'' otherwise.
 


==Example==  
==Example==  
Line 22: Line 27:
Some examples:
Some examples:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addCommandHandler( 'examples',
addCommandHandler( 'example',
function( )
function( )
                 --[[
                 --[[
Line 29: Line 34:
                 Match: 2, hello
                 Match: 2, hello
                 ]]  
                 ]]  
                 for i, v in ipairs( pregMatch( 'hello hello', '(hello)' ) ) do
                 for i, v in ipairs( pregMatch( "hello hello", "(hello)" ) ) do
            outputDebugString( 'Match: ' .. i .. ', ' .. v )
            outputDebugString( "Match: " .. i .. ", " .. v );
                 end
                 end
end
end
)
);
 
addCommandHandler( 'example2',
function( )
                --[[
                Will print:
                Match: 1, somebodyWWw
                Match: 2, 228
                ]]
                for i, v in ipairs( pregMatch( "somebodyWWw\n228", "([a-z0-9]+)", "im" ) ) do
            outputDebugString( "Match: " .. i .. ", " .. v );
                end
end
);
 
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>


==Requirements==
==Requirements==
{{Requirements|1.4-9.05106|1.4-9.05106|}}
{{Requirements|1.3.5-9.06056|1.3.5-9.06056|}}
 
==Changelog==
{{ChangelogHeader}}
{{ChangelogItem|1.5.0-9.07315|Added flag "u" in regular expressions}}


==See Also==
==See Also==
{{Utility_functions}}
{{Utility_functions}}

Latest revision as of 02:17, 30 October 2018

This function returns all matches.

[[|link=|]] Warning: When declaring a pattern string in quotes, the backslash character should be doubled up. e.g. "\\(" will match a single bracket.
[[|link=|]] Warning: Multiline flag does not work correctly

Syntax

table pregMatch ( string base, string pattern [, int/string flags = 0, int maxResults = 100000 ] )

Required Arguments

  • base: The base string for replace.
  • pattern: The pattern for match in base string.

Optional Arguments

  • flags: Conjuncted value that contains flags ( 1 - ignorecase, 2 - multiline, 4 - dotall, 8 - extended, 16 - unicode ) or ( i - Ignore case, m - Multiline, d - Dotall, e - Extended, u - Unicode )
  • maxResults: Maximum number of results to return


Returns

Returns a table if one or more match is found, false otherwise.

Example

Click to collapse [-]
Shared ( client and server )

Some examples:

addCommandHandler( 'example',
	function( )
                --[[
                Will print:
                Match: 1, hello
                Match: 2, hello
                ]] 
                for i, v in ipairs( pregMatch( "hello hello", "(hello)"  ) ) do
	            outputDebugString( "Match: " .. i .. ", " .. v );
                end
	end
);

addCommandHandler( 'example2',
	function( )
                --[[
                Will print:
                Match: 1, somebodyWWw
                Match: 2, 228
                ]] 
                for i, v in ipairs( pregMatch( "somebodyWWw\n228", "([a-z0-9]+)", "im" ) ) do
	            outputDebugString( "Match: " .. i .. ", " .. v );
                end
	end
);

Requirements

Minimum server version 1.3.5-9.06056
Minimum client version 1.3.5-9.06056

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version server="1.3.5-9.06056" client="1.3.5-9.06056" />

Changelog

Version Description
1.5.0-9.07315 Added flag "u" in regular expressions

See Also

Shared