Re: Unexplained Issue Using Regex
| From: | Nitsan Bin-Nun | 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
>