replace: Difference between revisions
Jump to navigation
Jump to search
Lmarkus001 (talk | contribs) (Example of replacing a literal string that has regex codes in it.) |
No edit summary |
||
Line 27: | Line 27: | ||
Returns (This is useful for search+replace of any string you feed to replace() that might have regex codes in it like parenthesis) | Returns (This is useful for search+replace of any string you feed to replace() that might have regex codes in it like parenthesis) | ||
This-est | This-est | ||
<source lang="mtmacro" line> | |||
[r: name = replace("wolph 5","(.*?) [0-9]+","\$1 42")] | |||
</source> | |||
returns | |||
wolph 42 | |||
The $ normally means to match end-of-line, but only when it's at the end of the pattern. In this case, it's at the beginning of the pattern. And that means if the character immediately following is a digit (such as $1), those characters are replaced by the source string matched by the corresponding set of parentheses in the regular expression. Note that multiple ".*" in the search string correspond with multiple $#: | |||
<source lang="mtmacro" line> | |||
[h:string = [{"x":1,"y":0},{"x":1,"y":1},{"x":1,"y":2}]] | |||
[r:result = replace(string, '\\{"x":(.*?),"y":(.*?)\\}', '"X\$1Y\$2"')] | |||
</source> | |||
returns | |||
["X1Y0","X1Y1","X1Y2"] | |||
}} | }} | ||
[[Category:String Function]] | [[Category:String Function]] |
Revision as of 11:27, 21 June 2012
replace() Function
• Introduced in version 1.3b48
Returns the string with the occurrences of a pattern replaced by the specified value. If the number of times to perform the replacement is not specified then all occurrences of the pattern are replaced. Pattern can be a regular expression. This means if the pattern string contains any regular expression special characters they must be escaped.
Usage
replace(str, pattern, value)
replace(str, pattern, value, times)
Example
[r: replace("This is a test", " ", "-")]
[r: replace("This is a test", " ", "-", 2)]
Returns
This-is-a-test This-is-a test
[r: tString = "is (a) t"]
[r: replace("This is (a) test", "\\Q" + tString + "\\E", "-")]
Returns (This is useful for search+replace of any string you feed to replace() that might have regex codes in it like parenthesis)
This-est
[r: name = replace("wolph 5","(.*?) [0-9]+","\$1 42")]
returns
wolph 42
The $ normally means to match end-of-line, but only when it's at the end of the pattern. In this case, it's at the beginning of the pattern. And that means if the character immediately following is a digit (such as $1), those characters are replaced by the source string matched by the corresponding set of parentheses in the regular expression. Note that multiple ".*" in the search string correspond with multiple $#:
[h:string = [{"x":1,"y":0},{"x":1,"y":1},{"x":1,"y":2}]]
[r:result = replace(string, '\\{"x":(.*?),"y":(.*?)\\}', '"X\$1Y\$2"')]
returns
["X1Y0","X1Y1","X1Y2"]