0

この形式の文字列があり、この文字列のみthe-big-bang-theoryが必要です。問題は、この文字列の一部の単語が可変長であることです

media-tv-quotes-2-the-big-bang-theory-94-toprated-2
       ^                               ^    ^     ^
----------------------------------------------------

このコードを試してみましたが、うまくいきません。

$keywords = str_replace("/media-[a-z]-quotes-+/","", "media-tv-quotes-2-the-big-bang-theory-94-toprated-2");

どうすればこれを達成できるか誰でも知っています。

ありがとう..

4

3 に答える 3

2

次の正規表現を試してください。

$keywords = preg_replace("/^media-[a-z]+-quotes-\d+-(.*?)-\d+-.*$/", "$1", "media-tv-quotes-2-the-big-bang-theory-94-toprated-2");
于 2012-09-27T07:35:50.070 に答える
2

2 つの数値の間で何かをフェッチします。

$s = 'media-tv-quotes-2-the-big-bang-theory-94-toprated-2';
preg_match('~\d+-(.+?)-\d+~', $s, $matches);
print_r($matches);

映画のタイトルに数字が含まれている場合は、問題を解決できます。その場合は、次を使用します。

$s = 'media-tv-quotes-2-the-big-bang-theory-94-toprated-2';
preg_match('~^media-\w+-\w+-\d+-(.+?)-\d+-\w+-\d+$~i', $s, $matches);
print_r($matches);
于 2012-09-27T07:42:00.157 に答える
0

これを試して :

$keywords = preg_replace("/^(.*?)(the-big-bang-theory)(.*)$/i","$2", "media-tv-quotes-2-the-big-bang-theory-94-toprated-2");

その前後のすべての文字をキャプチャthe-big-bang-theoryします。次に、交換で保存するだけthe-big-bang-theoryです。

于 2012-09-27T07:35:35.750 に答える