How to find the last comma and the word following it w/regex
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.
Re: How to find the last comma and the word following it w/regex
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' ) />