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

Reply via email to