Re: Help With Regular Expressions
I ended up using Replace to change ../geos/displayCountryData.cfm?countryCode=AS to ../geos/AS. Then I used REMatch("../geos/[A-Z]{2}",...) to find all occurrences of this resulting pattern. I then processed each match in the array REMatch returned with Replace(DBText, REMatchArrayEntry, REMatchArrayEntry & ".html", "ALL"). Each REMatchArrayEntry has the pattern ../geos/[A-Z]{2}. I'm sure there is a simpler way to handle this. But, this works. >Can you provide one more of the actual links? I'm going to assume that the >folderName string is not actually 'folderName'. If that's the case then it >would affect the regular expression and what it would need to look for. Will >the two character string always be at the end of the link? > >If everything else is the same, and you just need the last two characters of >a link: > > > > > > ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322461 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
RE: Help With Regular Expressions
Can you provide one more of the actual links? I'm going to assume that the folderName string is not actually 'folderName'. If that's the case then it would affect the regular expression and what it would need to look for. Will the two character string always be at the end of the link? If everything else is the same, and you just need the last two characters of a link: -Original Message- From: Robert Nurse [mailto:rnu...@gmail.com] Sent: Tuesday, May 12, 2009 11:20 AM To: cf-talk Subject: Help With Regular Expressions Hi All, I'm trying to find a way of using regular expressions to locate and replace text. My application reads in some text containing links from a DB: e.g. ../folderName/someCFMFile.cfm?code=AB. I want to change all occurrences of this to ../folderName/AB.html. Note that "code" can be any 2-uppercase-character combination. I've gotten to the point where I have ../folderName/code using: My problem is how to get it to replace what it matches with that same match (which would be ../folderName/code) with ../folderName/code.html? ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322429 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Help With Regular Expressions
This is untested, but should be close. REReplace(string, "[a-zA-Z0-9_-]+\.cfm\?code=([A-Z]{2})", "\1.html", "all") find zero or more a-zA-Z0-9_-, then ".cfm?code=", then any two A-Z and replace the whole thing with thos upper case letters plus ".html". If "someCFMFile.cfm" is static, you can replace that character class with the literal. cheers, barneyb On Tue, May 12, 2009 at 9:20 AM, Robert Nurse wrote: > > Hi All, > > I'm trying to find a way of using regular expressions to locate and replace > text. My application reads in some text containing links from a DB: e.g. > ../folderName/someCFMFile.cfm?code=AB. I want to change all occurrences of > this to ../folderName/AB.html. Note that "code" can be any > 2-uppercase-character combination. I've gotten to the point where I have > ../folderName/code using: > > > > > > My problem is how to get it to replace what it matches with that same match > (which would be ../folderName/code) with ../folderName/code.html? > > ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322428 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Help With Regular Expressions
Hi All, I'm trying to find a way of using regular expressions to locate and replace text. My application reads in some text containing links from a DB: e.g. ../folderName/someCFMFile.cfm?code=AB. I want to change all occurrences of this to ../folderName/AB.html. Note that "code" can be any 2-uppercase-character combination. I've gotten to the point where I have ../folderName/code using: My problem is how to get it to replace what it matches with that same match (which would be ../folderName/code) with ../folderName/code.html? ~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322427 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Help with Regular expressions
Mark Fuqua wrote: > Trying to wrap my head around this and get it to work with the framework I'm > using...what does this say, in words... > > [^a-z0-9] > > does it say characters other than a-z, 0-9 or only characters a-z, o-9? > thanks The ^ character is the 'NOT' operand of regex when used inside of a character class [...] set. For example [a-z0-9] says match any character set of 0-9 or a-z (case sensitive). Adding the carrot ^ reverses this, i.e. [^a-z0-9] means any character NOT in the set of 0-9 or a-z. Just note that the meaning of the carrot ^ symbol changes its meaning when outside of a character set [...]. Outside of this it matches the beginning of the string and|or line. ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298072 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Help with Regular expressions
It is saying any character in the set that is not a-z or 0-9. NOTE: He's testing that a bad character is found (instead of that only good characters are found) which should be slightly faster since it can return false at the first bad character found. Make not of the ReFind**NOCASE** :) That could trip you up if you used REFind. -jeff >Trying to wrap my head around this and get it to work with the framework I'm >using...what does this say, in words... > >[^a-z0-9] > >does it say characters other than a-z, 0-9 or only characters a-z, o-9? >thanks > > > > Bad chars > > ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298071 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: Help with Regular expressions
inside of the brackets, the caret (^) means 'not'. so that's "anything that's NOT a-z (or A-Z since adrian gave you a replacenocase() function) or 0-9". On Feb 4, 2008 8:56 AM, Mark Fuqua <[EMAIL PROTECTED]> wrote: > Trying to wrap my head around this and get it to work with the framework I'm > using...what does this say, in words... > > [^a-z0-9] > > does it say characters other than a-z, 0-9 or only characters a-z, o-9? > thanks > > > -Original Message- > From: Adrian Lynch [mailto:[EMAIL PROTECTED] > Sent: Monday, February 04, 2008 11:32 AM > To: CF-Talk > Subject: RE: Help with Regular expressions > > > > Bad chars > > > Adrian > > -----Original Message- > From: Mark Fuqua > Sent: 04 February 2008 16:30 > To: CF-Talk > Subject: Help with Regular expressions > > > I need to check and see that a form field has no special characters or > spaces, only 0-9 and a-z. I'm guessing a regular expression could do that.? > > > > I need a regular expression to do a pattern matching test.if it has anything > other than a-z or 0-9 it should fail. > > > > Thanks > > > > Mark Fuqua > > > > > ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298070 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
RE: Help with Regular expressions
Trying to wrap my head around this and get it to work with the framework I'm using...what does this say, in words... [^a-z0-9] does it say characters other than a-z, 0-9 or only characters a-z, o-9? thanks -Original Message- From: Adrian Lynch [mailto:[EMAIL PROTECTED] Sent: Monday, February 04, 2008 11:32 AM To: CF-Talk Subject: RE: Help with Regular expressions Bad chars Adrian -Original Message- From: Mark Fuqua Sent: 04 February 2008 16:30 To: CF-Talk Subject: Help with Regular expressions I need to check and see that a form field has no special characters or spaces, only 0-9 and a-z. I'm guessing a regular expression could do that.? I need a regular expression to do a pattern matching test.if it has anything other than a-z or 0-9 it should fail. Thanks Mark Fuqua ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298069 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
RE: Help with Regular expressions
Bad chars Adrian -Original Message- From: Mark Fuqua Sent: 04 February 2008 16:30 To: CF-Talk Subject: Help with Regular expressions I need to check and see that a form field has no special characters or spaces, only 0-9 and a-z. I'm guessing a regular expression could do that.? I need a regular expression to do a pattern matching test.if it has anything other than a-z or 0-9 it should fail. Thanks Mark Fuqua ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298065 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Help with Regular expressions
I need to check and see that a form field has no special characters or spaces, only 0-9 and a-z. I'm guessing a regular expression could do that.? I need a regular expression to do a pattern matching test.if it has anything other than a-z or 0-9 it should fail. Thanks Mark Fuqua ~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;160198600;22374440;w Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:298064 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Re: help with regular expressions!
If you don't need the pipe symbol betwee the username and the date, then the following would do: txt = query.column; txt = replace( txt, "***", " txt = replace( txt, "***", ""); // replace second *** cmStart = val( Find( "", txt)+7 ); cmEnd = len(txt); dspTxt = mid( txt, 1, cmStart); cm = mid( txt, cmStart, cmEnd - cmStart); #dsptxt# #cm# Still, if you could replace your posting script to change it's format that would be the way to do it. Either (ok) MAKE it post the list in the format you need it in, or (BEST) break the data into separate columns in your database. > well I thought we regular expressions I can do some patter matching > something to look for the first set of opening and closing 3 stars *** > and replace everything inside/between the stars including the stars > with > User 1 | 14/4/2004 15:58:15 > > >I don't think his string has delimiters. > > > >-Original Message- > >From: Dave Francis [mailto:[EMAIL PROTECTED] > >Sent: Friday, May 14, 2004 10:34 AM > >To: CF-Talk > >Subject: Re: help with regular expressions! > > > > > >Why regex rather than just Replace() or ListGetAt()? > > - Original Message - > > From: cf coder > > To: CF-Talk > > Sent: Friday, May 14, 2004 11:15 AM > > Subject: help with regular expressions! > > > > Hello Everybody, > > I've tried hard to find a solution to my problem but > > have had no luck. > > > > I am pulling the data from the 'comments' column in a > > database table. The data in the comments column looks > > like this. > > > > *** User1 10/28/2003 2:53:52 *** > > > > THIS IS A TEST > > > > *** User 2 04/06/2003 13:41:47 *** > > > > blah, blah > > > > I want to read everything that's between the *** ie > > *** User 1 10/28/2003 2:53:52 *** > > and display it like this: > > User 1 | 14/4/2004 15:58:15 > > THIS IS A TEST > > > > Can somebody please show me how to do this using > > regular expressions? > > Many thanks > > cf coder > > > > __ > > Do you Yahoo!? > > SBC Yahoo! - Internet access at a great low price. > > http://promo.yahoo.com/sbc/ > > _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: help with regular expressions!
First a couple of observations: If it were me, all of those fields would be in separate fields in the database. Then there would be no need to do what you are doing. However, it that's not an option, change the way you are posting the data so it's a list, and parse it out that way, using a delimiter like chr(128) or something else as innocuous. Then, pulling it apart is simply a retrieval of a particular list item. So for example, if you used the pipe symbol ("|"): User1|10/28/2003|2:53:52|THIS IS A TEST Now it's as simple as un = listGetAt( query.column, 1, "|"); dt = listGetAt( query.column, 2, "|"); tm = listGetAt( query.column, 3, "|"); cm = listGetAt( query.column, 4, "|"); #un# | #dt# #tm# #cm# As far as regex, the problem is the username. eg is it always one word, or is it possible to have one with spaces in it? If your example is correct, I would say that a regex solution won't work either. Show us some actual data. Thanks, Robert >Hello Everybody, >I've tried hard to find a solution to my problem but >have had no luck. > >I am pulling the data from the 'comments' column in a >database table. The data in the comments column looks >like this. > >*** User1 10/28/2003 2:53:52 *** > >THIS IS A TEST > >*** User 2 04/06/2003 13:41:47 *** > >blah, blah > >I want to read everything that's between the *** ie >*** User 1 10/28/2003 2:53:52 *** >and display it like this: >User 1 | 14/4/2004 15:58:15 >THIS IS A TEST > >Can somebody please show me how to do this using >regular expressions? >Many thanks >cf coder > > > > >__ >Do you Yahoo!? >SBC Yahoo! - Internet access at a great low price. >http://promo.yahoo.com/sbc/ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: help with regular expressions!
every string has delimiters - Original Message - From: [EMAIL PROTECTED] To: CF-Talk Sent: Friday, May 14, 2004 11:39 AM Subject: RE: help with regular expressions! I don't think his string has delimiters. -Original Message- From: Dave Francis [mailto:[EMAIL PROTECTED] Sent: Friday, May 14, 2004 10:34 AM To: CF-Talk Subject: Re: help with regular expressions! Why regex rather than just Replace() or ListGetAt()? - Original Message - From: cf coder To: CF-Talk Sent: Friday, May 14, 2004 11:15 AM Subject: help with regular expressions! Hello Everybody, I've tried hard to find a solution to my problem but have had no luck. I am pulling the data from the 'comments' column in a database table. The data in the comments column looks like this. *** User1 10/28/2003 2:53:52 *** THIS IS A TEST *** User 2 04/06/2003 13:41:47 *** blah, blah I want to read everything that's between the *** ie *** User 1 10/28/2003 2:53:52 *** and display it like this: User 1 | 14/4/2004 15:58:15 THIS IS A TEST Can somebody please show me how to do this using regular expressions? Many thanks cf coder __ Do you Yahoo!? SBC Yahoo! - Internet access at a great low price. http://promo.yahoo.com/sbc/ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: help with regular expressions!
well I thought we regular expressions I can do some patter matching something to look for the first set of opening and closing 3 stars *** and replace everything inside/between the stars including the stars with User 1 | 14/4/2004 15:58:15 >I don't think his string has delimiters. > >-Original Message- >From: Dave Francis [mailto:[EMAIL PROTECTED] >Sent: Friday, May 14, 2004 10:34 AM >To: CF-Talk >Subject: Re: help with regular expressions! > > >Why regex rather than just Replace() or ListGetAt()? > - Original Message - > From: cf coder > To: CF-Talk > Sent: Friday, May 14, 2004 11:15 AM > Subject: help with regular expressions! > > Hello Everybody, > I've tried hard to find a solution to my problem but > have had no luck. > > I am pulling the data from the 'comments' column in a > database table. The data in the comments column looks > like this. > > *** User1 10/28/2003 2:53:52 *** > > THIS IS A TEST > > *** User 2 04/06/2003 13:41:47 *** > > blah, blah > > I want to read everything that's between the *** ie > *** User 1 10/28/2003 2:53:52 *** > and display it like this: > User 1 | 14/4/2004 15:58:15 > THIS IS A TEST > > Can somebody please show me how to do this using > regular expressions? > Many thanks > cf coder > > __ > Do you Yahoo!? > SBC Yahoo! - Internet access at a great low price. > http://promo.yahoo.com/sbc/ > _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
RE: help with regular expressions!
I don't think his string has delimiters. -Original Message- From: Dave Francis [mailto:[EMAIL PROTECTED] Sent: Friday, May 14, 2004 10:34 AM To: CF-Talk Subject: Re: help with regular expressions! Why regex rather than just Replace() or ListGetAt()? - Original Message - From: cf coder To: CF-Talk Sent: Friday, May 14, 2004 11:15 AM Subject: help with regular expressions! Hello Everybody, I've tried hard to find a solution to my problem but have had no luck. I am pulling the data from the 'comments' column in a database table. The data in the comments column looks like this. *** User1 10/28/2003 2:53:52 *** THIS IS A TEST *** User 2 04/06/2003 13:41:47 *** blah, blah I want to read everything that's between the *** ie *** User 1 10/28/2003 2:53:52 *** and display it like this: User 1 | 14/4/2004 15:58:15 THIS IS A TEST Can somebody please show me how to do this using regular expressions? Many thanks cf coder __ Do you Yahoo!? SBC Yahoo! - Internet access at a great low price. http://promo.yahoo.com/sbc/ _ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: help with regular expressions!
Why regex rather than just Replace() or ListGetAt()? - Original Message - From: cf coder To: CF-Talk Sent: Friday, May 14, 2004 11:15 AM Subject: help with regular expressions! Hello Everybody, I've tried hard to find a solution to my problem but have had no luck. I am pulling the data from the 'comments' column in a database table. The data in the comments column looks like this. *** User1 10/28/2003 2:53:52 *** THIS IS A TEST *** User 2 04/06/2003 13:41:47 *** blah, blah I want to read everything that's between the *** ie *** User 1 10/28/2003 2:53:52 *** and display it like this: User 1 | 14/4/2004 15:58:15 THIS IS A TEST Can somebody please show me how to do this using regular expressions? Many thanks cf coder __ Do you Yahoo!? SBC Yahoo! - Internet access at a great low price. http://promo.yahoo.com/sbc/ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
help with regular expressions!
Hello Everybody, I've tried hard to find a solution to my problem but have had no luck. I am pulling the data from the 'comments' column in a database table. The data in the comments column looks like this. *** User1 10/28/2003 2:53:52 *** THIS IS A TEST *** User 2 04/06/2003 13:41:47 *** blah, blah I want to read everything that's between the *** ie *** User 1 10/28/2003 2:53:52 *** and display it like this: User 1 | 14/4/2004 15:58:15 THIS IS A TEST Can somebody please show me how to do this using regular expressions? Many thanks cf coder __ Do you Yahoo!? SBC Yahoo! - Internet access at a great low price. http://promo.yahoo.com/sbc/ [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: Help with Regular Expressions
You could run it on any line that has too many list elements. That is, if listlen(5) then run the script on it (define it as a UDF and call it). HTH. --Ben ColdFusion Programmer wrote: > Thanks Ben, the problem with that script is that because I'm reading a > log file with 300 plus rows of data, the execution time suffers. Is > there a way to only run your code if somewhere in the string there is a > comma inside double quotes? > > >Try this: > > > > > > > > string = string & ","; > > first = find('"', string); > > second = find('"', string, first + 1); > > while(first and second) > > { > > string = left(string, first) & replace(mid(string, first + 1, > >second-first), ',', '~', "all") & right(string, len(string) - second); > > first = find('"', string, second + 1); > > second = find('"', string, first + 1); > > } > > > > > > > >You'll notice that I append a comma to the end of the list. This is so > >that a double-quote can't be the last character. Sine CF ignores empty > >list entries, this shouldn't affect the rest of your code. If it does, > >just strip the last character at the end of the script. > > > >HTH. > > > >--Ben Doom > > > > > [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: Help with Regular Expressions
Try this: string = string & ","; first = find('"', string); second = find('"', string, first + 1); while(first and second) { string = left(string, first) & replace(mid(string, first + 1, second-first), ',', '~', "all") & right(string, len(string) - second); first = find('"', string, second + 1); second = find('"', string, first + 1); } You'll notice that I append a comma to the end of the list. This is so that a double-quote can't be the last character. Sine CF ignores empty list entries, this shouldn't affect the rest of your code. If it does, just strip the last character at the end of the script. HTH. --Ben Doom [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Re: Help with Regular Expressions
The problem is in defining "between quotation marks" because technically in "testuser1","testuser2" the comma *is* between quotation marks. I can see how you could loop over the string and keep the pairs consistent that way, but I can't off the top of my head think of a way to do it with a single regex. Here's another way to look at it: you have a quotation-mark-delimited list with throwaway members that just contain commas. I don't know if that will be the right way to go about it, but it might be worth considering. If not, I would use a find() to locate all the quotes and work with them in pairs that way, removing/replacing commas between them. HTH. --Ben Doom Allan Clarke wrote: > I want to use a regular _expression_ that > finds any commas that are between quotation marks and > either escapes them or replaces them > > Here is an my string. > > 2003/09/09 14:49:05, "TestUser1", > "/Doc/News/Budgeting,Forecasting & Reporting.doc", > "OK" > > As you can see "/Doc/News/Budgeting,Forecasting & > Reporting.doc" has a comma in it. The example above is > a list with 4 items: > > 2003/09/09 14:49:05 > "TestUser1" > "/Doc/News/Budgeting,Forecasting & Reporting.doc" > "OK" > > But because the string > ("/Doc/News/Budgeting,Forecasting & Reporting.doc") > has > a comma the list len comes back with 5 items which is > wrong. Can you show me how to get around this? Many Thanks > > __ > Do you Yahoo!? > The New Yahoo! Shopping - with improved product search > http://shopping.yahoo.com > [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]
Help with Regular Expressions
I want to use a regular _expression_ that finds any commas that are between quotation marks and either escapes them or replaces them Here is an my string. 2003/09/09 14:49:05, "TestUser1", "/Doc/News/Budgeting,Forecasting & Reporting.doc", "OK" As you can see "/Doc/News/Budgeting,Forecasting & Reporting.doc" has a comma in it. The example above is a list with 4 items: 2003/09/09 14:49:05 "TestUser1" "/Doc/News/Budgeting,Forecasting & Reporting.doc" "OK" But because the string ("/Doc/News/Budgeting,Forecasting & Reporting.doc") has a comma the list len comes back with 5 items which is wrong. Can you show me how to get around this? Many Thanks __ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com [Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]