Your regex won't match anything without the area code. How about...
(\d{4}\s?\d{4}) that's the main part: 4 digits, an optional space then 4
digits.
((\d{2})\s)? that's the area code if it exists. 2 digits followed by a space
((\+\d{2})\s)? that's the country code if it exists. A leading + followed by
2 digits followed by a space.
All together (could be mistakes in here):
<cfset regex = "((\+\d{2})\s)?((\d{2})\s)?(\d{4}\s?\d{4})">
array element 1 is the whole thing.
Ignore 2
3 is the country code if exists
ignore 4
5 is the area code if exists
6 is the main part of the phone number.
Note I've built this based on your sample data only. It's probably not
sufficiently general.
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:bounce-cfaussie-
> [EMAIL PROTECTED] On Behalf Of Taco Fleur
> Sent: Thursday, 20 November 2003 12:28 p.m.
> To: CFAussie Mailing List
> Subject: [cfaussie] Re: RegEx Backreferences...
>
> The example I showed was just an example, really the telephone number
> could be anything
>
> +31 07 3433 3243
> 07 3433 2111
> 4345 3434
> 33334455
>
>
> -----Original Message-----
> From: Matthew Walker [mailto:[EMAIL PROTECTED]
> Sent: Thursday, 20 November 2003 10:25 AM
> To: CFAussie Mailing List
> Subject: [cfaussie] Re: RegEx Backreferences...
>
>
> > It's so that I know pos[3] will always return the area code.
>
> But the area code is the first subexpression starting at pos[2] . . . ?
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:bounce-cfaussie-
> > [EMAIL PROTECTED] On Behalf Of Taco Fleur
> > Sent: Thursday, 20 November 2003 11:56 a.m.
> > To: CFAussie Mailing List
> > Subject: [cfaussie] Re: RegEx Backreferences...
> >
> > ok next one...
> >
> > Can you do something like
> >
> > (\+\d+|select nothing here, but populate structure)
> >
> > Reason for doing this is so that
> > pos[2] len[2] will exists, if that makes any sense?
> >
> > It's so that I know pos[3] will always return the area code.
> >
> > -----Original Message-----
> > From: Spike [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, 20 November 2003 9:41 AM
> > To: CFAussie Mailing List
> > Subject: [cfaussie] Re: RegEx Backreferences...
> >
> >
> > Something like this should do it for you:
> >
> > <cfset regex = "(\d+)\s+(\d{4}\s+\d{4})">
> > <cfset str = "07 1234 5678">
> >
> > <cfset stResult = reFindNoCase(regex,str,1,true)>
> >
> > <cfdump var="#stResult#">
> >
> > <cfset areacode = mid(str,stResult.pos[2],stResult.len[2])>
> > <cfset number = mid(str,stResult.pos[3],stResult.len[3])>
> >
> > <cfoutput>(#areacode#) #number#</cfoutput>
> >
> > If you return sub-expressions, the resulting structure will contain
> > multiple entries. The first element in the pos and len arrays will be
> > the match for the whole regex. The subsequent entries will be the
> > matches for the sub-expressions.
> >
> > There should be n+1 entries in those arrays. Where n is the number of
> > sub-expressions in your regex.
> >
> > Spike
> >
> >
> > Taco Fleur wrote:
> >
> > > Morning!
> > >
> > > How do I return back references? (maybe I need another coffee, but I
> > > just don't see it)
> > >
> > > The regex
> > > (\d+)\s+(\d{4}\s+\d{4})
> > >
> > > 07 1234 5678
> > >
> > > I know I can reference to the area code by
> > > 07 = \1
> > > I know I can reference to the telephone number by
> > > 1234 5678 = \2
> > >
> > > But how in godsname do I output it?
> > >
> > > I could NOT just do
> > > <cfoutput>
> > > #\1# #\2#
> > > </cfoutput>
> > >
> > > All I can think of is using reReplace() but surely there must be some
> > > other way!?
> > >
> > >
> > >
> > > *Taco Fleur
> > > 07 3535 5072*
> > > Tell me and I will forget
> > > Show me and I will remember
> > > Teach me and I will learn
> > >
> > > ---
> > > You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
> > > To unsubscribe send a blank email to
> > > [EMAIL PROTECTED]
> > > MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
> > > http://www.mxdu.com/ + 24-25 February, 2004
> >
> > --
> > Stephen Milligan
> > Software Architect for http://www.bestrates.com.au
> > MSN: [EMAIL PROTECTED]
> >
> >
> >
> > ---
> > You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
> > To unsubscribe send a blank email to leave-cfaussie-
> > [EMAIL PROTECTED]
> >
> > MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
> > http://www.mxdu.com/ + 24-25 February, 2004
> >
> > ---
> > You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
> > To unsubscribe send a blank email to leave-cfaussie-
> > [EMAIL PROTECTED]
> >
> > MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
> > http://www.mxdu.com/ + 24-25 February, 2004
>
>
>
>
> ---
> You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
> To unsubscribe send a blank email to leave-cfaussie-
> [EMAIL PROTECTED]
>
> MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
> http://www.mxdu.com/ + 24-25 February, 2004
>
> ---
> You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
> To unsubscribe send a blank email to leave-cfaussie-
> [EMAIL PROTECTED]
>
> MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
> http://www.mxdu.com/ + 24-25 February, 2004
---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004