0

次のことを考慮してください。

$string = "A string with {LABELS} and {more|232} {lbls} and some other stuff";
echo str_replace('/(\{.*?\})/', '', $string);

すべてのラベルを削除しようとしています(ラベルはの間の任意のテキストです{brackets})。期待される出力は次のとおりです。

A string with and and some other stuff

しかし、私が得たのは元の文字列でした。

A string with {LABELS} and {more|232} {lbls} and some other stuff

私は何が間違っているのですか?

4

5 に答える 5

11

str_replaceは正規表現では機能しません。代わりに、preg_replaceを使用してください。

http://php.net/manual/en/function.preg-replace.php

于 2012-04-17T15:28:49.793 に答える
2

preg_replace代わりに使用する必要があります:

$string = "A string with {LABELS} and {more|232} {lbls} and some other stuff";
echo preg_replace( '/\{.*?\}/', '', $string );
于 2012-04-17T15:29:29.590 に答える
0

試す:

echo preg_replace('/\{.*?\}/', '', $string);
于 2012-04-17T15:29:33.927 に答える
0
preg_replace('/\{.*?\}/','',$str)
于 2012-04-17T15:33:13.317 に答える
0

必ずpreg_replaceを使用してください。ただし、スペースを除外し、中括弧が適切に一致していることを確認するには、わずかに異なる正規表現が必要です。

$string = "A string with {LABELS} and {more|232} {lbls} and some other stuff";
echo preg_replace('/\s*\{[^}]*\}/', '', $string);

与える:とと他のいくつかのものを含む文字列

于 2012-04-17T15:35:32.847 に答える