【PHP】正規表現で括弧に囲われているワードを検索取得

こんにちは、正規表現が全然覚えられない人間です。
今回は、正規表現でも割と使う括弧関連についてまとめておこうと思います。

正規表現で括弧に囲われているワードを検索

$text = 'さんぷる{てきすと}です。';

$pattern1 = "/\{.*\}/";
$pattern2 = "/\{(.*)\}/";

preg_match($pattern1, $text, $match1);
preg_match($pattern2, $text, $match2);

echo $match1;
echo $match2;

MEMO
スラッシュ【/】で囲われているのは、PHPでの正規表現の決まりです。デリミタといいます。※波括弧を使うこともできます。

今回の検索{.\*}は、【 { 】で始まり【 } 】で終わるものを検索します。
【 { 】【 } 】の前に【 \ 】が付いているのはエスケープです。

検索結果

Array
(
    [0] => {てきすと}
)

Array
(
    [0] => {てきすと}
    [1] => てきすと
)

複数括弧を取得する場合

$text = '<div class="form-control">{{content1}}{{content2}}</div>';

$pattern = '/\{\{.+?\}\}/';

preg_match_all($pattern, $text, $match);

echo $match;

検索結果

Array
(
    [0] => Array
        (
            [0] => {{content1}}
            [1] => {{content2}}
        )

)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です