最初の ] から最後の [ までのコンテンツを抽出する PHP 正規表現を使用することは可能ですか?
たとえば、次の文字列があるとします。
$string = [shortcode]You write a shortcode by using ([])[/shortcode]
抽出したい:
You write a shortcode by using brackets ([])
そしてそれを変数に格納します。抽出されるコンテンツは何でもかまいません。前もって感謝します。
終了タグと一致することを確認するために、キャプチャグループを使用する必要があります。
\[(\w+)\].*?\[/\1\]
これは内部の単語と一致し、内部[]
で同じ単語が見つかるまで続行し[/...]
ます。
正規表現はデフォルトで貪欲なので、これでうまくいきます。
/\](.*)\[/
これをPHPで正しく機能させるには、次のようにします。
preg_match('/\](.*)\[/', $text, $matches);
$result = $matches[1];
これはあなたが必要とするものを作ることができます
[^\]]\](.*)\[[^\[]
これは機能します:
preg_match( '@\](.*)\[@', $string, $matches);
print_r($matches);