You can do recursive matching using the (?R) syntax in preg functions (Perl
Compatible Regular Expression).

----- Original Message -----
From: "Christopher William Wesley" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "Cameron Just" <[EMAIL PROTECTED]>
Sent: Tuesday, March 26, 2002 1:01 AM
Subject: Re: [PHP] Regular Expression Challenge


> You won't be able to do that with a regexp alone.  Recursively matching
> isn't possible.  You'll need a little help from some additional code.
>
> <?php
>         $string = "wed-thurs 9:35, 14:56, 18:35";  // YOUR STRING
>         $regexp = "^([a-z]+)-([a-z]+)[\ ]+(.*)$";
> // GETS (day)-(day) (any/all times)
>         $find = ereg( $regexp, $string, $matches );
>         $times = explode( ",", $matches[3] );  // BREAK APART (.*)
>         print( $matches[1] . "<br>\n" . $matches[2] . "<br>\n" );
>         while( list( $key, $val ) = each( $times ) ){
>                 print( trim( ${val} ) . "<br>\n" );
>         }
> ?>
>
> That seems to do the trick.  Hopefully that gets ya closer to where you
> want to go.  If you really needed to regexp match on the times, you can
> do that within the while loop.
>
> g.luck,
>         ~Chris                         /"\
>                                        \ /     Microsoft Security
Specialist:
>                                         X      The moron in Oxymoron.
>                                        / \     http://www.thebackrow.net
>
> On Mon, 25 Mar 2002, Cameron Just wrote:
>
> > Hi,
> >
> > I am trying to pull out the following information via a regular
expression.
> >
> > The string I am searching on is 'wed-thurs 9:35, 14:56, 18:35'
> >
> > and I want it to retreive
> > wed
> > thurs
> > 9:35
> > 14:56
> > 18:35
> >
> > The regular expression I am using is
> > ([a-z]+)-([a-z]+) +([0-9]{1,2}:?[0-9]{0,2})[, ]*
> >
> > It seems to be grabbing the
> > wed
> > thurs
> > 9:35
> > but I can't seem to retrieve the rest of the times.
> >
> > Anyone have any ideas?
> >
> > BTW
> > There can be any number of 'times' in the string and also the 'times'
can
> > be with or without the colon and the minutes, hence the '}:?[0-9]{0,2}'
> > part of the regexp.
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to