2

私はWordPressでショートコードのようなものを作ろうとしています、そして私はそのようなものを取り、[title:This is a title]それをちょうどに変える正規表現を探していThis is a titleます。

誰かがそのようなものを取り[code:some code]、それをarray([0] =>'code' [1] =>'some code')またはarray('codeの形式で配列に変換する方法を提案できれば便利です。 '=>'いくつかのコード'

あちこちで見つけたいくつかの異なる正規表現を試しましたが、どれも機能していないようです。

ありがとう

4

1 に答える 1

4
preg_replace('/\[.*?:(.*?)\]/', '$1', $str);

CodePad

コロンの前のテキストをキャプチャする場合は、括弧で囲むだけで、キャプチャグループ1になります。

アップデート

preg_match代わりに使用したいpreg_replace

preg_match_all()すべての一致を取得するために使用する必要があります。

preg_match_all('/\[(.*?):(.*?)\]/', $str, $matches);

イデオネ

または、名前付きのキャプチャグループを指定することもできます。

preg_match_all('/\[(?P<identifier>.*?):(?<body>.*?)\]/', $str, $matches);

イデオネ

于 2011-05-19T02:35:54.020 に答える