The Dopefly Tech Blog

<< The Dopefly Tech Blog Main page

Use the Java regular expression engine in ColdFusion

posted under category: ColdFusion on April 7, 2006 at 12:19 pm by MrNate

This is somewhat old news, but I've been using it lately, and figured I'd put a little reminder out here. Whenever you are trying to create a regular expression in ColdFusion and are having trouble with it, or if you're trying to use an advanced feature that just doesn't work (like lookbehind), remember that there IS a solution.

Here's a hint. Remember, CF is Java! Here's how to exploit the wonders of java.lang.String:

<cfset str = "This is my string!">
#str.matches("^.+$")#, displays YES
#str.replaceAll("\W","")#, displays Thisismystring
<cfdump var="#str.split("\W")#"/>, dumps an array of words

Everything you can do with a String can be found a the Java 1.4.2 API docs. (1.4.2 and not 1.5 because CFMX 6 & 7 support does not currently extend past 1.4.2)

Don't know enough about regular expressions? Learn more from the ColdFusion LiveDocs "Using Regular Expressions" pages, and also from

Post A Comment!
On Apr 7, 2006 at 12:04 PM Trevor Burnette (trevor of said:
Sweet. I never thought about using java.lang.String for my regex needs.

Here is a link to an article on using java to run regex against a file using java.

On Apr 7, 2006 at 6:51 PM John Allen ( said:
thanks for the reminder. good post.

On Apr 8, 2006 at 7:25 AM Michael White (mwhite007 who wouldn't be caught dead at said:
and just like magic, adobe has an article on how to upgrade your JRE to Sun's latest... found the article on MXNA:
and talking tree has a little more:

On Jan 12, 2007 at 2:29 PM Ben Nadel ( said:
One note... you cannot call this on query records directly even if the query cell value is a string. The call:

Query.ColumnValue.ReplaceAll( .. )

Will throw an error because it doesn't know that the ColumnValue is a string. Underneath it must be some sort of "RecordCell" object or something.

To get around this, convert to a string first:

ToString( Query.ColumnValue ).ReplaceAll( .. )

That should be good to go!

On Jan 12, 2007 at 3:08 PM Nathan Strutz ( said:
To follow suit, you could also do this the slightly more java way...


Just throwing that out there. It's not necessarily better in any way :)
Post A Comment!