带有正则表达式和正斜杠的Preg_replace

时间:2012-11-06 16:04:50

标签: php regex preg-replace

以下是代码:

$string = "/My-Item-Here-p/sb-p36abbg.htm";
$str = preg_replace('/^.*-p\s*/', '', $string);
$str = substr($str, 1);
echo $str;

这会吐出6abbg.htm,我希望它只删除所有内容,包括“-p /”(注意正斜杠)。

所以我希望它吐出sb-p36abbg.htm

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式:/^.*-p\/(.*)$/

<?php
$sourcestring="/My-Item-Here-p/sb-p36abbg.htm";
echo preg_replace('/^.*-p\/(.*)$/','\1',$sourcestring);
?>

Codepad link.

答案 1 :(得分:0)

我认为没有理由在特定情况下使用正则表达式。只需使用strpossubstr

$string = "/My-Item-Here-p/sb-p36abbg.htm";
$str = substr($string, strpos($string, '-p/') + 3);
echo $str;

考虑到使用不需要它们的正则表达式会浪费计算资源。

答案 2 :(得分:0)

$string = "/My-Item-Here-p/sb-p36abbg.htm";
$str = preg_replace('/^.*?(?=-p\/)', '', $string);