以下是代码:
$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
答案 0 :(得分:1)
试试这个正则表达式:/^.*-p\/(.*)$/
<?php
$sourcestring="/My-Item-Here-p/sb-p36abbg.htm";
echo preg_replace('/^.*-p\/(.*)$/','\1',$sourcestring);
?>
答案 1 :(得分:0)
我认为没有理由在特定情况下使用正则表达式。只需使用strpos和substr。
$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);