-1

私はPHPのPCREの初心者です。私は、次のような形式で何かを作成できる非常に基本的なショートコード関数を作成しようとしています:{somealphanumericthing}

本質的にpreg_match_all()、私は自分の投稿でこれらのタイプの出来事を見つけることができる が必要です。私はこのようなことを試しました:

$shortcode = preg_match_all('/^\b\{[a-zA-Z0-9_]+(\}\b)$/', $body, $found);
    var_dump($shortcode);
    if($shortcode==1) {
        for($i=0;$i<count($found);$i++) {
            print_r($found);
                        //do something nice
        }
    }

しかし、残念ながら機能していません: テスト文字列 {test} に int 0 を取得します

4

1 に答える 1

1

正規表現に関するいくつかのこと:

  • より大きな文字列を検索しているため、行アンカーは必要ありません。
  • クロージングをキャプチャする必要はありません}
  • 最適化、文字クラスを使用\w

凝縮:

/\b\{[a-zA-Z0-9_]+\}\b/
于 2013-07-30T13:58:27.837 に答える