Using Backreferences - MACROMEDIA COLDFUSION MX 61-DEVELOPING COLDFUSION MX Develop Manual

Developing coldfusion mx applications
Table of Contents

Advertisement

Character class
:alnum:
:xdigit:
:blank:
:space:
:print:
:punct:
:graph:
:cntrl:
:word:
ascii

Using backreferences

You use parenthesis to group components of a regular expression into subexpressions. For
example, the regular expression "(ha)+" matches one or more occurrences of the string "ha".
ColdFusion performs an additional operation when using subexpressions; it automatically saves
the characters in the search string matched by a subexpression for later use within the regular
expression. Referencing the saved subexpression text is called backreferencing.
You can use backreferencing when searching for repeated words in a string, such as "the the" or "is
is". The following example uses backreferencing to find all repeated words in the search string and
replace them with an asterisk:
REReplace("There is is coffee in the the kitchen",
"[ ]+([A-Za-z]+)[ ]+\1"," * ","ALL")
Using this regular expression, ColdFusion detects the two occurrences of "is" as well as the two
occurrences of "the", replaces them with an asterisk enclosed in spaces, and returns the following
string:
There * coffee in * kitchen
You interpret the regular expression [ ]+([A-Za-z]+)[ ]+\1 as follows:
Use the subexpression ([A-Za-z]+) to search for character strings consisting of one or more letters,
enclosed by one or more spaces, [ ]+, followed by the same character string that matched the first
subexpression, \1.
You reference the matched characters of a subexpression using a slash followed by a digit n (\n)
where the first subexpression in a regular expression is referenced as \1, the second as \2, etc. The
next section includes an example using multiple backreferences.
152
Chapter 7: Using Regular Expressions in Functions
Matches
Any alphanumeric character. Same as \w.
Any hexadecimal digit. Same as [0-9A-Fa-f].
Space or a tab.
Any whitespace character. Same as \s.
Any alphanumeric, punctuation, or space character.
Any punctuation character
Any alphanumeric or punctuation character.
Any character not part of the character classes [:upper:], [:lower:], [:alpha:],
[:digit:], [:punct:], [:graph:], [:print:], or [:xdigit:].
Any alphanumeric character, plus the underscore (_)
The ASCII characters, in the Hexadecimal range 0 - 7F

Advertisement

Table of Contents
loading

This manual is also suitable for:

Coldfusion mx

Table of Contents