On Wed, 2009-07-22 at 07:54 -0700, Jim Lucas wrote: > rszeus wrote: > > Thank you. > > > > What about instead test i want to insert a variable ? > > Like > > $id = "30"; > > $file = "screens/temp/7a45gfdi6icpan1jtb1j99o925_1_main.jpg"; > > echo preg_replace('#(screens/)temp/(.+?)_1(_main\.jpg)#', '$1$id$3', $file); > > Sure that can be done. But you will need to change the second argument > to have double quotes so it will be parsed by PHP. > > Then I would surround YOUR variable with curly brackets to separate it > from the rest. > > echo preg_replace('#(screens/)temp/.+?_1(_main\.jpg)#', > "$1{$id}$3", > $file); > > > I am confusing " and '. > > > > Thank you > > > > > > -----Mensagem original----- > > De: Eddie Drapkin [mailto:oorza2k5@xxxxxxxxx] > > Enviada: quarta-feira, 22 de Julho de 2009 14:12 > > Para: rszeus > > Cc: php-general@xxxxxxxxxxxxx > > Assunto: Re: Replace in a string with regex > > > > On Wed, Jul 22, 2009 at 9:07 AM, rszeus<rszeus@xxxxxxxxx> wrote: > >> Hi. It Works to remove the _1 but it doesn't replace '7a45gfdi6icpan1jtb1j99o925' for 'test' > >> > >> Thank you > >> > >> -----Mensagem original----- > >> De: Eddie Drapkin [mailto:oorza2k5@xxxxxxxxx] > >> Enviada: quarta-feira, 22 de Julho de 2009 13:11 > >> Para: rszeus > >> Cc: php-general@xxxxxxxxxxxxx > >> Assunto: Re: Replace in a string with regex > >> > >> On Wed, Jul 22, 2009 at 8:02 AM, rszeus<rszeus@xxxxxxxxx> wrote: > >>> Hello, > >>> > >>> I’m tryng to make some replacements on a string. > >>> > >>> Everything goês fine until the regular expression. > >>> > >>> > >>> > >>> $file = "screens/temp/7a45gfdi6icpan1jtb1j99o925_1_main.jpg"; > >>> > >>> echo $a = str_replace(array(7a45gfdi6icpan1jtb1j99o925, > >>> 'temp/',’_([0-9])’), array(“test”,"",””), $file) > >>> > >>> > >>> > >>> The idea is to remove /temp and the last _1 from the file name..but i’m only > >>> getting this: > >>> > >>> screens/test_1_main.jpg > >>> > >>> > >>> > >>> I want it to be: screens/test_main.jpg > >>> > >>> > >>> > >>> Thank you > >>> > >>> > >>> > >>> > >> If you're trying to do a regular expression based search and replace, > >> you probably ought to use preg_replace instead of str_replace, as > >> str_replace doesn't parse regular expressions. > >> > >> Try this one out, I think I got what you wanted to do: > >> > >> <?php > >> > >> $file = "screens/temp/7a45gfdi6icpan1jtb1j99o925_1_main.jpg"; > >> > >> echo preg_replace('#(screens/)temp/(.+?)_1(_main\.jpg)#', '$1$2$3', $file); > >> > >> > > > > In the second parameter, $2 is the string you'd want to replace to > > test so change '$1$2$3' to '$1test$3'. > > > > It seems like you're having trouble with regular expressions, may I > > suggest you read up on them? > > > > http://www.regular-expressions.info/ is a pretty great free resource, > > as ridiculous as the design is. > > > > > > > I tested this, with the double quotes and the curly braces around the middle argument (to avoid PHP getting confused) and it didn't recognise the matches by the numbered $1, $3, etc. I know I'm not the op who asked the original question, but it might help him/her? Thanks Ash www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php