2012-02-21 18 views
0

現在、(PHPで)I次の正規表現パターンを持っている:RegExで特定のパターンの多くのインスタンスを見つける方法は?

\[(.*) (.*)=(.*)\] 

これは私のコードは、その文字列を解釈し、どのような値で置き換えますということで

最終結果[=真doSomethingの制限]を一致しますそれを返すようにコードされています。

しかし、私のコードの一部は、例えば、関数に介して送信される複数の変数を必要とします:

[doSomethingの制限=真otherlimitation =偽のsendfile = = "こんにちは" 1タイトル]

どのようにすることができます私は(。)=(。)は、関数の最初の(最も重要な)名前を含めて送信されたすべての変数と一致するように、正規表現で繰り返しますか?

+0

すぐに利用できるBBCodeライブラリをgoogleする必要があります。 – KingCrunch

+0

ありがとう、私はそれを見てみましょうが、私は自分のコードを過剰にしたくないので、それは私が持っているよりも遅くする、これは私が大量のサードパーティ製のものを使用しないことを好む理由です。 – user85569

+1

これは通常、車輪を箱に交換しようとしています。最善のケースでは単純に機能しません。最悪の場合、すでに解決済みの証券問題を導入します。 – KingCrunch

答えて

0

以下はあなたのために働く可能性があります

\[(.*) ((.*)=(.*))+\] 

ます。また、プラス記号であなたのアスタリスクを交換することができます。現在、あなたの正規表現は有効な文字列として[ =]と一致します。

\[(.+) ((.+)=(.+))+\] 
+0

最後の+記号は、PHPのpreg_replace()が何も一致しないようにします。助言がありますか?正規表現のテスターでは正常に動作するようです。 – user85569

+0

私は 'preg_replace()'の癖にあまり慣れていません。ごめんなさい。 –

関連する問題