PregReplace

From Multi Theft Auto: Wiki
Revision as of 17:11, 7 November 2024 by Fernando187 (talk | contribs) (Remove obsolete Requirements section)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This function performs a regular expression search and replace and returns the replaced string.

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

Syntax

string pregReplace ( string subject, string pattern, string replacement [, int/string flags ] )

Required Arguments

  • subject: The input string.
  • pattern: The pattern string to search for in the input string.
  • replacement: The replacement string to replace all matches within the input 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 )

Returns

Returns the replaced string, or bool false otherwise.

Example

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

Some examples:

addCommandHandler('examples',
    function ()
        -- Replace doh with done
        outputDebugString( pregReplace( 'I doh this, guys.', 'doh', 'done' ) or 'not replaced' ) -- Result: I done this, guys

        -- Remove all uppercase alphabetic characters
        outputDebugString( pregReplace( 'AaaBbbZzz', '[A-Z]{1,}', '' ) or 'not replaced' ) -- Result: aabbzz

        -- Use simple backreference in replacement string
        outputDebugString( pregReplace( "I love Lua!", "(Lua)", "Moon\\1" ) ) -- Result: I love MoonLua!

        -- Remove repeated characters
        outputDebugString( pregReplace( "Keeeeeep this shooooooort.", "((.)\\2{2})\\2+", "\\1" ) ) -- Result: Keeep this shooort.
    end
)

Changelog

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

See Also