UnicodeReplace (Regex function): Difference between revisions
No edit summary |
No edit summary |
||
Line 37: | Line 37: | ||
<p class="code">b | <p class="code">b | ||
%regex is object regex | %regex is object regex | ||
%regex = new("([α-ω]{3,})(\d{3,})":u, replace="$2–$1":u) | %regex = new("([&alpha;-&omega;]{3,})(\d{3,})":u, replace="$2&ndash;$1":u) | ||
print %regex:unicodeReplace("My license plate says φβκ7643":u) | print %regex:unicodeReplace("My license plate says &phi;&beta;&kappa;7643":u) | ||
print %regex:unicodeReplace("My license plate says φβκ7643":u, "nothing") | print %regex:unicodeReplace("My license plate says &phi;&beta;&kappa;7643":u, "nothing") | ||
end | end | ||
</p> | </p> | ||
displays: | displays: | ||
<p class="code">My license plate says 7643–φβκ | <p class="code">My license plate says 7643&#x2013;&#x03C6;&#x03B2;&#x03BA; | ||
My license plate says nothing | My license plate says nothing | ||
</p> | </p> |
Revision as of 23:02, 23 March 2022
Replace regex match(es) for Unicode (Regex class)
This function replaces the parts of a Unicode string that match the regular expression in the Regex object and returns the Unicode string with the replacements.
Syntax
%unicode = regex:UnicodeReplace( unicode, [replacement], [Options= string])
Syntax terms
A string of single letter options, which may be specified in uppercase or lowercase, in any combination, and blank separated or not. These options are a subset of Common regex options. The only acceptable options (case-independent) areA
for "as-is", G
for "global" (replace all occurrences), and T
for trace.%unicode | A copy of the input unicode after matches are replaced using the appropriate replacement unicode. | ||||
---|---|---|---|---|---|
regex | The Regex object. | ||||
unicode | The unicode to test against the Regex object. | ||||
replacement | The unicode that replaces the substrings of string that regex matches. Except when the A option is specified (as described at Common regex options), you can include markers in the replacement value to indicate where to insert corresponding captured strings — strings matched by capturing groups (parenthesized subexpressions) in the regular expression, if any.
These markers are in the form $n, where n is the number of the capture group, and 1 is the number of the first capture group. n must not be 0 or contain more than 9 digits. If there was no nth capture group corresponding to the $n marker in a replacement string, the (literal) value of $n is used in the replacement string instead of the empty string.
The only characters you can escape in a replacement string are dollar sign ( An invalid replacement string results in request cancellation. | ||||
options |
Usage notes
- If the regular expresion specified in the constructor call was not Unicode, this method causes request cancellation. To test if a Regex object was created with a Unicode regular expression check the IsUnicode property.
- There is no way to undo the
A
,G
, andT
options if they were specified on the constructor so if a Regex objects sometimes needs these options and sometimes not, they should be specified on each UnicodeReplace call.
Examples
The following example:
b %regex is object regex %regex = new("([α-ω]{3,})(\d{3,})":u, replace="$2–$1":u) print %regex:unicodeReplace("My license plate says φβκ7643":u) print %regex:unicodeReplace("My license plate says φβκ7643":u, "nothing") end
displays:
My license plate says 7643–φβκ My license plate says nothing