How to find the last comma and the word following it w/regex

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

How to find the last comma and the word following it w/regex

MotoManiac
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.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to find the last comma and the word following it w/regex

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
the string.

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?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: http://www.houseoffusion.com/groups/regex/message.cfm/messageid:1255
Subscription: http://www.houseoffusion.com/groups/regex/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/regex/unsubscribe.cfm
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How to find the last comma and the word following it w/regex

MotoManiac
Peter Boughton wrote
Hopefully that all makes sense?
Yes that makes perfect sense, it works perfectly! You are a lifesaver Peter, thank you!
David Pierce
Loading...