0

最初の ] から最後の [ までのコンテンツを抽出する PHP 正規表現を使用することは可能ですか?

たとえば、次の文字列があるとします。

$string = [shortcode]You write a shortcode by using ([])[/shortcode]

抽出したい:

You write a shortcode by using brackets ([])

そしてそれを変数に格納します。抽出されるコンテンツは何でもかまいません。前もって感謝します。

4

4 に答える 4

3

終了タグと一致することを確認するために、キャプチャグループを使用する必要があります。

\[(\w+)\].*?\[/\1\]

これは内部の単語と一致し、内部[]で同じ単語が見つかるまで続行し[/...]ます。

于 2012-04-23T21:20:07.110 に答える
1

正規表現はデフォルトで貪欲なので、これでうまくいきます。

/\](.*)\[/

これをPHPで正しく機能させるには、次のようにします。

preg_match('/\](.*)\[/', $text, $matches);

$result = $matches[1];
于 2012-04-23T21:19:06.033 に答える
0

これはあなたが必要とするものを作ることができます

[^\]]\](.*)\[[^\[]
于 2012-04-23T21:25:46.880 に答える
0

これは機能します:

preg_match( '@\](.*)\[@', $string, $matches);
print_r($matches);
于 2012-04-23T21:31:00.107 に答える