Hah crybaby! ;-) I tried 'all' but it just throws an error on 6.1
..:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. Bobby Hartsfield http://acoderslife.com -----Original Message----- From: Ben Doom [mailto:[EMAIL PROTECTED] Sent: Monday, November 05, 2007 1:55 PM To: CF-Talk Subject: Re: Regex search problem Don't do the refind() in the loop. Running it once with "all" specified will return (you're right on this one) a struct of arrays. It will find all of the matches (hence scope "all" :-P). You then only need to loop over the results. Much more efficient. Plus, OMG, you're using a condition that runs the regex and throws away the answer. Don't do that. Ever. Please. It makes me weep. --Ben Doom Bobby Hartsfield wrote: > Likea so... > > <cfset txt = "this is a test testId67Text more text more text testId49Text > more text testId54Text more text testId56Text" /> > <cfset county = 0 /> > <cfset arrString = arrayNew(1) /> > <cfset nums = arrayNew(1) /> > > <cfloop condition="refind('testId(\d+)Text', txt)"> > <cfset county = county + 1 /> > <cfset arrString = refind('testId(\d+)Text', txt, 1, true) /> > <cfset nums[county] = mid(txt, arrString['pos'][2], > arrString['len'][2]) /> > <cfset txt = removechars(txt, arrString['pos'][1], > arrString['len'][1]) /> > </cfloop> > <cfdump var="#nums#" /> > > > ..:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. > Bobby Hartsfield > http://acoderslife.com > > > -----Original Message----- > From: Ben Doom [mailto:[EMAIL PROTECTED] > Sent: Monday, November 05, 2007 11:37 AM > To: CF-Talk > Subject: Re: Regex search problem > > You can do an > refind(text, "\d+", 1, "all") > refind in text digits starting at position one find all > > This will return an array of structs with keys pos and len. Pos is the > start position, and len is the length. You can then use mid() to grab them. > > --Ben Doom > > Web Exp wrote: >> Thanks Ray... >> Ok... I guess I should have clarified that I am using CF MX7, so I >> cannot use reMatch function. >> Also, what I am looking for is to find a list of numbers between the >> strings: "testId" and "Text" in this pattern: >> "testId67Text more text more text testId49Text more text testId54Text >> more text". I need to extract 67,49,54. >> Note: I do not need all the umbers, I want them only if they are >> present in that pattern. >> >> Thanks, >> K >> >> On 11/5/07, Raymond Camden <[EMAIL PROTECTED]> wrote: >>> Use the number character class. >>> >>> >>> <cfsavecontent variable="test"> >>> testId67Text more text more text testId49Text more text testId54Text more > text >>> </cfsavecontent> >>> >>> <cfset numbers = reMatch("[[:digit:]]+", test)> >>> <cfdump var="#numbers#"> >>> >>> >>> On Nov 5, 2007 9:30 AM, Web Exp <[EMAIL PROTECTED]> wrote: >>>> Hi. I have a bunch of text in a db table that has multiple occurances >>>> of this pattern: >>>> "testId67Text more text more text testId49Text more text testId54Text > more text" >>>> How can I get all the numbers from it? i need 67,49,54. >>>> >>>> I know it need regex. But I need help. >>>> >>>> Thanks, >>>> K >>>> >>>> >> > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Create robust enterprise, web RIAs. Upgrade to ColdFusion 8 and integrate with Adobe Flex http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:292696 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

