2010-12-10 10 views

答えて

1

</object>のスラッシュは、<\/object>のように引用する必要があります。そうでない場合は、スラッシュで区切っているため正規表現の終わりと解釈されます。行全体は以下のようになります。

$matches = preg_replace("/<object(.+?)<\\/object>/","replacing string",$str); 
+0

@ACBalajiできるだけこの回答を受け入れることを忘れないでください。 – alex

0

正規表現では、スラッシュは正規表現の区切り文字です。あなたがタグを扱っているとして、より良い(代わりにバックスラッシュでエスケープの)別の区切り文字を使用します。

$matches = preg_replace("#<object(.+?)</object>#", "replacing string", $str); 

があまりにも、他のdelimiteresがあります。英数字以外のバックスラッシュでない空白文字を使用できます。ただし、特定の区切り文字は、正規表現で頻繁に使用されるため、たとえば、|+*などの括弧/括弧を使用しないでください。

Btw、HTMLの正規表現を使用すると、Bad Thing

0

最初の文字は、式をフラグから区切るための区切り文字として扱われます。したがって、これは:

"/[a-z]+/i" 

...内部的にこのに分割されています。

- Pattern: [a-z]+ 
- Flags: i 

ので、この:

"/<object(.+?)</object>/" 

を...有効な正規表現ではありません。これを試してください:

"@<object(.+?)</object>@" 
関連する問題