Re: Regular Expression Challenge

From: Date: Tue, 26 Mar 2002 03:55:17 +0000
Subject: Re: Regular Expression Challenge
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-90148@lists.php.net to get a copy of this message
You can do recursive matching using the (?R) syntax in preg functions (Perl Compatible Regular Expression). ----- Original Message ----- From: "Christopher William Wesley" <cwwesley@udlug.org> To: <php-general@lists.php.net> Cc: "Cameron Just" <c.just@phoenixdigital.com> 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

« previous php.general (#90148) next »