2012-05-13 7 views
0
[div="desc"][1="text1"][2="text2"][3="link3"][/div] 

そして、それはどのように「DESC」、数字やテキストを抽出する正規表現を作成することができます6. の限界まで続けることができ続けますか? 私はPHPの配列で試したが、私はできませんでした。PHP BBコード再帰的な正規表現

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

+1

ここで再帰はどこですか?それ以降のすべてのテキストで同じ形式になりますか? – Shubham

答えて

2

ここに再帰はありません。少なくとも、あなたの例では表示されていません。あなたの一般的なケースで再帰であることが判明した場合、正規表現は機能しません。パーサーを使用する必要があります。

この場合、最初にpreg_match_allを/ [([^]] +)] /のような正規表現で使用することをお勧めします。配列matchesをこの関数に渡した場合、preg_match_allを実行した後、matches[1]は文字列 '[div = "desc"]'、 '[1 = "text1"]'などを含む配列になります。 foreachを使用してループし、各文字列を=に分割して、解析した文字列の2つの部分で好きなように実行できます。