0

最後の "/" の後、"_completed" 文字列の前のテキストを取得するには、正規表現を使用する必要があります。

たとえば、私の入力が次の場合:

http://localhost/project-1/uploaded_images/output//11-03-2013+11-09-2013/Brian_Brown_completed.jpg 

「Brian Brown」を出力する必要がありますが、それは preg_match で可能ですか? 残念ながら、私はそれを理解することができませんでした!JavaScriptはどうですか?

さらに明確にする必要がある場合は、お知らせください。

編集:

出力にアンダースコアが表示されなくなったことに注意してください。

よろしくお願いします。

4

5 に答える 5

1

JavaScript を使用

フィドルのデモ

var str = 'http://localhost/project-1/uploaded_images/output//11-03-2013+11-09-2013/Brian_Brown_completed.jpg ';
console.log(str.substring(str.lastIndexOf("/")+1).split('_completed')[0]);


参照

.lastindexof()

。スプリット()

于 2013-11-11T16:45:35.203 に答える
1

正規表現以外のソリューションが受け入れられる場合:

<?php
$url = 'http://localhost/project-1/uploaded_images/output//11-03-2013+11-09-2013/Brian_Brown_completed.jpg';
$test = basename($url, '_completed.jpg');
于 2013-11-11T16:45:37.287 に答える
0
if (preg_match('~([^/]+)_completed\.jpg$~', $url, $match)) {
    echo $match[1];
}
于 2013-11-11T16:48:24.677 に答える
0

PHP:

preg_match('#.*/(.*)_completed\.jpg$#', $input, $match); // Find the name
$name = str_replace('_', ' ', $match[1]); // Convert underscores to spaces

Javascript:

name = /.*\/(.*)_completed\.jpg$/.exec(input)[1].replace(/_/, ' ');
于 2013-11-11T16:49:00.587 に答える
0

これは次のことを行う必要があります。

$s = str_replace ("_", " ", substr ( $s, strrpos($s, "/")+1, strrpos($s, "_completed")-strrpos($s, "/")-1 )) ;
于 2013-11-11T16:49:05.853 に答える