15

我根本无法弄清楚 preg_replace,它对我来说只是中文,无论如何我只需&page-X要从字符串中删除“”,如果它在那里。

X当然,如果有人有一个preg_replace对初学者有用的教程的链接,那也很方便!

4

4 回答 4

22

实际上,正则表达式的基本语法,正如preg_replace和朋友所支持的那样,很容易学习。将其视为描述具有特定含义的某些字符的模式的字符串。

在您非常简单的情况下,可能的模式是:

&page-\d+

\d含义是一个数字(数字字符 0-9)和+含义:重复前面的表达式+(此处:)一次\d或多次。所有其他角色只代表他们自己。

因此,上面的模式匹配以下任何字符串:

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

由于preg函数使用与 Perl 兼容的语法,并且正则表达式/在 Perl 中的斜线 ( ) 之间表示,因此您必须将模式括在斜线中:

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

实际上,您也可以使用其他字符:

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

有关受支持语法的完整参考,请参阅PHP 手册

于 2009-09-28T13:46:52.410 回答
6

preg_replace使用Perl 兼容的正则表达式作为搜索模式。试试这个模式:

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

有关更多信息,请参阅模式语法

于 2009-09-28T13:38:34.197 回答
1
$outputstring = preg_replace('/&page-\d+/', "", $inputstring);

preg_replace()

于 2009-09-28T13:38:36.273 回答
0
preg_replace('/&page-\d+/', '', $string)

有用的信息:

在 PHP 中使用正则表达式

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

于 2009-09-28T13:45:03.903 回答