在普通字符之间匹配PHP中的唯一字符串

时间:2012-08-28 07:08:44

标签: php regex

我正在尝试在PHP中进行一些字符串匹配。我在变量中有以下url字符串:

phones/gift.nintendo-3ds/handset.blackberry-9790.html

我想从上面删除/gift.nintendo-3ds,但礼物总是不同。

有什么想法吗?我希望每次调用不同的礼物后,url变量看起来像这样:

phones/handset.blackberry-9790.html

由于

3 个答案:

答案 0 :(得分:3)

preg_replace('/\/gift\.[^/]*/', '', $url);

比赛/礼物。然后任何东西,直到下一个斜线,并用空白替换它。

答案 1 :(得分:1)

尝试:

$input  = 'phones/gift.nintendo-3ds/handset.blackberry-9790.html';
$output = preg_replace('(gift\.[^/]*\/)', '', $input);

答案 2 :(得分:0)

你可以将它拆分,删除你不想保留的第二部分,然后重新连接它:

$parts = explode('/', $url, 3);
unset($parts[1]);
$result = implode('/', $parts);

这可能没有像你想象的那样使用任何正则表达式,但可能会告诉你一些其他有用的函数。

演示:http://codepad.org/a1pNW8J6

正则表达式变体可以是:

echo preg_replace('~^([^/]+)(/[^/]+)~', '$1', $url);

演示:http://codepad.org/vyR04xMn