User Guide
656 Chapter 3: ColdFusion Functions
<cfset st = REFindNoCase("[[:alpha:]]+",testString,1,"True")>
<p>
<cfoutput>
The number of elements in each array: #ArrayLen(st.pos)#.
</cfoutput></p>
<p><b>The number of elements in the pos and len arrays will always be one,
if you do not use parentheses to denote subexpressions in the regular
expression.</b></p>
<p>The value of st.pos[1] is: <cfoutput>#st.pos[1]#.</cfoutput></p>
<p>The value of st.len[1] is: <cfoutput>#st.len[1]#.</cfoutput></p>
<p>
<cfoutput>
Substring is <b>[#Mid(testString,st.pos[1],st.len[1])#]</B>
</cfoutput></p>
<hr size = "2" color = "#0000A0">
<p>However, if you use parentheses to denote subexpressions in the regular
expression, the first element contains the position and length of
the first instance of the whole expression. The position and length
of the first instance of each subexpression within will be included
in additional array elements.</p>
<p>For example:
<CFSET st1 = REFindNoCase("([[:alpha:]]+)[
]+(\1)",testString,1,"True")></p>
<cfset st1 = REFindNoCase("([[:alpha:]]+)[ ]+(\1)",testString,1,"True")>
<p>The number of elements in each array is
<cfoutput>
#ArrayLen(st1.pos)#
</cfoutput>.</p>
<p>First whole expression match; position is
<cfoutput>
#st1.pos[1]#; length is #st1.len[1]#;
whole expression match is <B>[#Mid(testString,st1.pos[1],st1.len[1])#]</B>
</cfoutput></p>
<p>Subsequent elements of the arrays provide the position and length of the
first instance of each parenthesized subexpression therein.</p>
<cfloop index = "i" from = "2" to = "#ArrayLen(st1.pos)#">
<p><cfoutput>Position is #st1.pos[i]#; Length is #st1.len[i]#;
Substring is <B>[#Mid(testString,st1.pos[i],st1.len[i])#]</B>
</cfoutput></p>
</cfloop><br>