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

Reply via email to