views:

390

answers:

4

I cant figure out preg_replace at all, it just looks chinese to me, anyway I just need to remove "&page-X" from a string if its there.

X being a number of course, if anyone has a link to a useful preg_replace tutorial for beginners that would also be handy!

+3  A: 

preg_replace uses Perl-Compatible Regular Expression for the search pattern. Try this pattern:

preg_replace('/&page-\d+/', '', $str)

See the pattern syntax for more information.

Gumbo
A: 
$outputstring = preg_replace('/&page-\d+/', "", $inputstring);

preg_replace()

Marius
A: 

preg_replace('/&page-\d+/', '', $string)

Useful information:

Using Regular Expressions with PHP

http://articles.sitepoint.com/article/regular-expressions-php

Wbdvlpr
+3  A: 

Actually the basic syntax for regular expressions, as supported by preg_replace and friends, is pretty easy to learn. Think of it as a string describing a pattern with certain characters having special meaning.

In your very simple case, a possible pattern is:

&page-\d+

With \d meaning a digit (numeric characters 0-9) and + meaning: Repeat the expression right before + (here: \d) one or more times. All other characters just represent themselves.

Therefore, the pattern above matches any of the following strings:

&page-0
&page-665
&page-1234567890

Since the preg functions use a Perl-compatible syntax and regular expressions are denoted between slashes (/) in Perl, you have to surround the pattern in slashes:

$after = preg_replace('/&page-\d+/', '', $before);

Actually, you can use other characters as well:

$after = preg_replace('#&page-\d+#', '', $before);

For a full reference of supported syntax, see the PHP manual.

Ferdinand Beyer
so what if I wanted to replace "/page-1"
bluedaniel
ah got it, #/page-\d+#, thanks for your thorough answer
bluedaniel