Re: Unexplained Issue Using Regex

From: Date: Fri, 06 Mar 2009 22:01:50 +0000
Subject: Re: Unexplained Issue Using Regex
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-289500@lists.php.net to get a copy of this message
Thank you Todd, I also want to capture when I don't have the www in the beginning of the URL. For instance, try to execute your code with $orig = 'http://zshare.net/video/541070871c7a8d9c<http://www.zshare.net/video/541070871c7a8d9c> '; That's why I used (www\.|), but I'm not a regex expert and I'm sure there a way better solutions to this problem. On Fri, Mar 6, 2009 at 11:53 PM, haliphax <haliphax@gmail.com> wrote: > On Fri, Mar 6, 2009 at 3:44 PM, Nitsan Bin-Nun <nitsan@binnun.co.il> > wrote: > > I'm not looking for other ideas, the main thing here is that I have about > > 30-100 regex's in the database and the script fetches them and applies > them > > to the string. I can't build again the engine and I'm not going to do > that. > > I'm trying to solve my problem ;) If you have any ideas regarding my > issue > > and not going in another way this would be very appreciated. > > Nitsan, > > I think it's because you're referencing the capture group with index > instead of index 2. Also, I don't understand why you have the pipe > ("|") character in your regex string... is that part of your engine? > > This code: > > $orig = > 'http://www.zshare.net/video/541070871c7a8d9c'; > $matches = array(); > > preg_match('#http://(www\.)zshare\.net/video/([^/]+)#', > $orig, $matches); > echo $matches[2]; > > Grabs the correct match: > > 541070871c7a8d9c > > The regex pattern works with the pipe char, but it is unnecessary and > may lead to some strange behavior. > > Hope this helps, > > > -- > // Todd >

« previous php.general (#289500) next »