中括弧内のテキストを抽出する必要がありますが、その中の最初の単語が「許可された」単語である場合のみです。たとえば、次のテキスト:
awesome text,
a new line {find this braces},
{find some more} in the next line.
Please {dont find} this ones.
この単純な例では、「find」は許可された単語を表します
私の試み:
$pattern = '!{find(.*)}!is';
$matches = array();
preg_match_all( $pattern, $text, $matches, PREG_SET_ORDER );
奇妙な結果を返します (print_r):
Array
(
[0] => Array
(
[0] => {find this braces},
{find some more} in the next line.
Please {dont find}
[1] => this braces},
{find some more} in the next line.
Please {dont find
)
)
パターンに「find」がなくても正常に動作している間(ただし、「dont」を含むものも見つかります。
これの原因は何ですか?