2012-02-24 4 views
0

私は[CODE]...[/CODE]のすべての文字列を置き換える文字列を取得しました。 preg_replace_callbackでこれらのタグの内容を処理する関数を呼び出すことはできますか?しかし、私はそれらの出現の周りにあるすべての文字列をどのように操作できますか?preg_replace_callbackの文字列の部分を別様に扱います

例:今すぐ

$str = "Hello, I am a string with [CODE]some code[/CODE] in it"; 

preg_replace_callbackと私はこの場合some codeには、[CODE]のコンテンツを操作します。しかし、私はこの文字列内の他のすべてのテキストを参考にしたいので、Hello, I am a string within itは別のことをします。私はこれを最善の方法でどうやってやり遂げることができますか

ありがとうございました!

Floの

答えて

2

私は正規表現を見ることができればそれはより簡単になると思いますが、要点は、私はあなたがキャプチャグループをしたいと考えていることです。

括弧で囲まれたグループに配置することで、これらのリージョンに別々にアクセスできる必要があります。各セクションはコールバックで利用可能になります。 /(.*)(\[CODE\].*\[/CODE\])(.*)/のようなものは、あなたのコールバックに一致する配列を渡す必要があります

+1

正規表現は '/(。*)(\ [CODE \]。* \ [\/CODE \])(。*)/'それではないでしょうか? '\ [CODE \]'は '' [CODE] 'を受け付けますが、第二のコードは' '[/ CODE]' –

+1

です@コンスタンチンナリシェンええ、ありがとう。私はキャプチャグループ配列が正しい方向に微調整されることを期待していましたが、間違った正規表現は混乱しています。私はそれを修正します。 – menacingly

関連する問題