2011-10-03 10 views

答えて

6

あなたが最初の#区切り文字欠落していた。

'#\{.*?\}#s' 

をオンラインで作業、それを参照してください:ideone

他のマイナーなポイントのカップル:あなたはパターン内の任意の文字を持っていないので、

  • i修飾子はここでは不要です。
  • {}を正規表現でエスケープして、量子としての使用を混乱させないようにしてください。ただし、厳密には必要ではありません。
+0

返信いただきありがとうございますが、最初の括弧が削除され、括弧内のすべてが残っていました。 –

+0

@John Jenkins:野生の推測として、あなたは '\}'を忘れてしまったと思います。そうでなければ、最後の '#'の直前に余分なスペースや文字があります。より具体的なヘルプが必要な場合は、コードを投稿してください。 –

+0

私はあなたが私に与えたコードをコピーして貼り付けました。私は他の何かのためにコードをゆっくりと修正しようとすることで、今は別のものを試しています:$ string = preg_replace( '#([{。*?}])*?([{。*?}])# ( '\ t $ 2') "、$ string);それはすべての期間と疑問符の後にタブを追加しますが、私はすべての括弧の間にすべてのためにそれを行うためにしたいと思います。 –

1

他の質問を読んだ後、あなたのコードを美しくするためにこれを使いたいと思うようです。多くのエディタが単一のファイルに対してこの機能を組み込んでいますが、これを多数のファイルに適用したいと考えています。この場合は、https://github.com/clbustos/PHP_Beautifierを参照してください。

コメントの編集:あなたは正直なところ、正規表現を使用したくありません。 php tokenizerを使用します。

+0

私は自分の美化器を作ろうとしています –

+3

@JohnJenkins:他の人にお金のためにそれを書いてもらうことを要求することによって? – mario

+1

私は広告なしで完全に無料で提供しています。私はほとんどそれを自分で使用します –

関連する問題