I have a dynamically created a comma delimited string via form submission:
i.e. "Monday, Tuesday, Thursday, Saturday" OR "Tuesday, Thursday" etc.
Pretty standard stuff. I have already cleaned the string to remove any
preceeding or trailing comma's and trimmed all the whitespace. My question
is, using regex and coldfusion, how would I find the last occurance of a
comma in the string (between Thursday and Saturday for example), and replace
that comma withh the word "and" so my string would wind up being "Monday,
Tuesday, Thursday and Saturday". Any help would be appreciated. thank you.
View this message in context: http://old.nabble.com/How-to-find-the-last-comma-and-the-word-following-it-w-regex-tp33460091p33460091.html
Sent from the Cold Fusion - RegEx mailing list archive at Nabble.com.
Author: Peter Boughton
You can use $ to match the end of the string, and [^,] to match
"anything except a comma".
So to find the last comma, you want to match a comma, followed by
"anything except a comma" as many times as necessary until the end of
To then replace the comma, but not the non-comma text afterwards, we
can use a lookahead - using syntax (?=X) to say "make sure X matches
the following text, but don't include it in the match/replacement.
Putting all that together, the regex would be:
And that can be used with:
<cfset Text = REReplace( Text , ',(?=[^,]+$)' , ' and' ) />
Hopefully that all makes sense?