1

これが私のコードです:

$searchTerm='/9j/4AAQSkZJ';
$searchTerm = preg_replace('/\/(+s)\//i','',$searchTerm);

/9j/から削除しようとしてい$searchTermます。

具体的には、スラッシュ、スペースのない一連の文字と整数、次にスラッシュです

私の表現について何が正しくないのですか?

4

6 に答える 6

4
$newTerm = preg_replace('#/[a-z0-9]+/#i', '', $searchTerm);

/区切り文字を別のもの (私の例では) に置き換える#と、特にパターンに文字が含まれている場合に読みやすくなります/。別の区切り文字を使用すると、スラッシュをエスケープする必要がなくなります。

于 2013-07-29T05:17:55.443 に答える
1

+sで変更する必要があります.*

また、i

$newTerm = preg_replace('/\/(.*)\//', '', $searchTerm);

ここでテスト済み: http://regexpfiddle.com/

于 2013-07-29T05:17:25.620 に答える
1

+s正規表現で意味のあるものとしてどこから得たのかわかりません。

個人的にはこれをお勧めします:

$searchTerm = explode("/",$searchTerm,3)[2];

ただし、これは最新の PHP でのみ機能することに注意してください。古いバージョンの場合は、次のものが必要です。

$searchTerm = explode("/",$searchTerm,3);
$searchTerm = $searchTerm[2];

正規表現が必要な場合は、これを試してください:

$searchTerm = preg_replace("(^/[^/]+/)","",$searchTerm);

この正規表現は区切り文字として括弧を使用します (括弧を使用する場合、競合を避けるために何かをエスケープする必要はありません。それらは一致するペアになるためです)。文字列の先頭から開始し、スラッシュを探し、次にスラッシュ以外のものを探します。 、次に 2 番目のスラッシュで、すべて削除します。

于 2013-07-29T05:18:33.157 に答える
0

別の区切り文字を試してください:

preg_replace('~/\w+/~','',$term);
于 2013-07-29T05:17:52.700 に答える
0

これを試して:

preg_replace('#/.*/#', '', $searchTerm);
于 2013-07-29T05:18:10.070 に答える
0
$searchTerm='/9j/4AAQSkZJ';
$searchTerm = preg_replace('~^/\S+/~','',$searchTerm);
于 2013-07-29T05:18:12.587 に答える