PregMatch: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Server client function}}
{{Server client function}}
{{New items|4.0135|1.3.5|
{{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, uint flags = 0 )
table pregMatch ( string base, string pattern [, int/string flags = 0, int maxResults = 100000 ] )
</syntaxhighlight>
</syntaxhighlight>


Line 14: Line 15:
*'''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


===Optional Arguments===
*'''flags:''' Conjuncted value that contains flags ( 1 - ignorecase, 2 - multiline, 4 - dotall, 8 - extented ).


===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 32: 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',
addCommandHandler( 'example2',
Line 43: Line 45:
                 Will print:
                 Will print:
                 Match: 1, somebodyWWw
                 Match: 1, somebodyWWw
                 Match: 2, 3
                 Match: 2, 228
                 ]]  
                 ]]  
                 for i, v in ipairs( pregMatch( "somebodyWWw\n228", "([a-z0-9]+)", bitOr(1,2) ) ) do
                 for i, v in ipairs( pregMatch( "somebodyWWw\n228", "([a-z0-9]+)", "im" ) ) do
            outputDebugString( 'Match: ' .. i .. ', ' .. v )
            outputDebugString( "Match: " .. i .. ", " .. v );
                 end
                 end
end
end
)
);


</syntaxhighlight>
</syntaxhighlight>
Line 56: Line 58:
==Requirements==
==Requirements==
{{Requirements|1.3.5-9.06056|1.3.5-9.06056|}}
{{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