Re: Unexplained Issue Using Regex
| From: | Adam | Date: | Fri, 06 Mar 2009 20:17:44 +0000 |
| Subject: | Re: Unexplained Issue Using Regex | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-289484@lists.php.net to get a copy of this message | ||
would this not work? :
<?php
$string = "http://www.zshare.net/video/541070871c7a8d9c";
$replaceWithThis = 'HELLYES-';
echo $string."\n";
echo preg_replace('/\S+video\//',$replaceWithThis,$string)."\n";
echo $replaceWithThis.substr($string, strripos($string, '/')+1,
strlen($string))."\n";
echo $replaceWithThis.substr(strrchr($string, '/'), 1,
strlen(strrchr($string, '/')));
?>
OUTPUT:
C:\>php test.php
http://www.zshare.net/video/541070871c7a8d9c
HELLYES-541070871c7a8d9c
HELLYES-541070871c7a8d9c
HELLYES-541070871c7a8d9c
C:\>
On Fri, Mar 6, 2009 at 2:32 PM, Nitsan Bin-Nun <nitsan@binnun.co.il> wrote:
> Hi lista,
>
> I have been trying to figure this out for the last couple of hours but I'm
> lack of luck.
> Take a look at these regex's, the string that was inputed into the
> preg_replace (using Uis modificators) and the results:
> (the lists have correspondence to each other)
>
> ORIGINAL STRING
> ----
>
> http://www.zshare.net/video/541070871c7a8d9c
> http://www.guba.com/watch/2000821351
> http://www.veoh.com/videos/v4609719YfsCFpf
>
>
> REGEX USED (with Uis modificators)
> ----
> http:\/\/(www\.|)zshare\.net\/video\/([^\/]+)
> $3
> http:\/\/(www\.|)guba\.com\/watch\/([0-9]+)
> $3
> http:\/\/(www\.|)veoh\.com\/videos\/([^\/]+)
>
> THE RETURNED STRING
> ----
> 41070871c7a8d9c
> 000821351
> 4609719YfsCFpf
>
> If you will go through this carefully you will notice that the first
> character of each matching group is being deleted.
> The regex's and the replacements string are being fetched from the database
> (mysql) and goes straight to the preg_replace function with the original
> string.
>
> I have no idea why this happens.
> I'm looking forward for your opinions and suggestions.
>
> Regards,
> Nitsan
>
--
Adi...