2017-09-17 8 views
0

大括弧で囲まれた2つのグループの間にテキストをキャプチャする方法が必要です。 だから、たとえば、次の文字列:PHPで2つの大括弧で囲まれたテキストをキャプチャする

test test [foo] bar [/foo] test 

私は出力「バー」する必要がありますが、「バー」は可変単語

どのように私は私が必要とする出力を得ることができますか?多分これだけで表現して

答えて

0

preg_match('/\](.*)\[/', 'test test [foo] bar [/foo] test', $match); 
echo trim($match[1]); 
+0

これは私が必要としていたとおりに動作します!ありがとうございました! – guilhermeafonso

1

preg_match('/\[([^\]]+)\](.*?)\[\/\1\]/', $text)

それが終了タグだと最初の角括弧のタグに一致するように後方参照を使用しました。同じタグを入れ子にしたり、ネストされたタグをプレーンテキスト以外のものとして扱いたい場合は、これは機能しません。

関連する問題