Sorry, you can't do that. Here's why:
Coldfusion hands strings off to the regex engine. CF allows you to used
functions, variables, etc. in the string, but it executes them *before*
the regex runs. So, in your first code sample, it's trying to find the
literal key \1 in appSettings, and then passing the result as the
replace value.
--Ben Doom
Jon Clausen wrote:
> I'm sure it's something simple that I'm missing, but I want to use a
> regex backreference as the struct key (i.e. - struct["key"]) or as an
> argument (i.e. - function("argument") ) but I've failed in all my
> attempts so far.
>
> For now I've written the code out using a loop with reFind(),
> returning subexpressions, mid(), etc. but it seems to me there should
> be a way to do this using reReplace() and pass the backreference as an
> argument/key. Usage of evaluate() would probably be a deal-breaker
> since it would be less expensive to perform the loop.
>
> Here's examples of what i'm trying to do:
>
> <!--- Trying to use backref passed as struct key --->
> <cfset pageOut = reReplace(pageContent,"<%show:([a-zA-Z0-9_]+)
> %>",appSettings["\1"],"ALL")/>
>
> <!--- Trying to use backref passed as argument --->
> <cfset pageOut = reReplace(pageContent,"<%getModule:([a-zA-Z0-9_]+)
> %>",controller.getModule("\1"),"ALL")/>
>
> Thoughts?
>
> Jon
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Get involved in the latest ColdFusion discussions, product
development sharing, and articles on the Adobe Labs wiki.
http://labs/adobe.com/wiki/index.php/ColdFusion_8
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293375
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4