2013-03-11 50 views
0

我想通过使用正则表达式来替换字符串中的数字。这应该是非常简单的,但由于某种原因,它今天给我带来了悲伤。字符串中的“feed”是动态的,只能包含字母或数字。PHP正则表达式替换字符串中的数字

这里是我试过:

$new_number = 999; 
$string = '/feed/page/1/?param=true'; 
preg_replace('/\/([0-9a-z])\/page\/([0-9])\/(.*)/i', '/$1/page/'.$new_number.'/$3', $string); 

应该输出: '/换页//999 /参数=真的吗?'

+1

作为一个方面说明,你可以使用除'/'之外的其他字符来定界正则表达式。 ''@ /([0-9a-z] +)/ page /([0-9] +)/(。*)@ i''比'/ \ /([0-9a-z] +)\ /页面\ /([0-9] +)\ /(。*)/ i''。 – 2013-03-11 02:09:13

+0

谢谢@DoubleGras!我对此一无所知。 – stwhite 2013-03-11 23:28:50

回答

2

遗忘+的,是吗? :P试试这个作为你的regEx:

'/\/([0-9a-z]+)\/page\/([0-9]+)\/(.*)/i' 
1

试试这个:

\/([0-9a-z]{1,})\/page\/([0-9]{1,})\/(.*)