0

コードは次のとおりです。

$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

4

3 に答える 3

1

この正規表現を試してください:/^.*-p\/(.*)$/

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

コードパッドリンク。

于 2012-11-06T16:09:47.777 に答える
0

その特定のケースで正規表現を使用する理由はわかりません。strpossubstrを使用するだけです。

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

実際には必要のない正規表現を使用することは、計算リソースの浪費であることを考慮に入れてください。

于 2012-11-06T16:12:19.720 に答える
0
$string = "/My-Item-Here-p/sb-p36abbg.htm";
$str = preg_replace('/^.*?(?=-p\/)', '', $string);
于 2012-11-06T16:20:02.313 に答える