PHP で角括弧内のテキストをキャプチャする
プログラミングでは、より大きな文字列から特定のデータを抽出する必要に遭遇することがよくあります。一般的なシナリオの 1 つは、次の例に示すように、角かっこで囲まれたテキストをキャプチャすることです。
[This] is a [test] string, [eat] my [shorts].
目的は、この文字列を配列に変換することです。
[ '[This]', '[test]', '[eat]', '[shorts]' ]
基本的な/[.*?]/ のような正規表現で十分だと思われるかもしれませんが、角括弧の最初のインスタンスのみがキャプチャされます。目的の出力を実現するには、修正されたアプローチが必要です。
正規表現の解決策:
修正された正規表現で preg_match_all を使用すると、範囲内のすべてのテキストに一致します。角括弧。次のコードはこれを実現します:
preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
このコードは次の正規表現を使用します:
括弧を削除する別の方法:
括弧なしでテキストを抽出したい場合は、正規表現を変更できます。わずかに:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
このコードは次を使用します:
「*」数量子を使用した 3 番目のオプション:
時間はかかりますが、別の方法として、代わりに "*" 量指定子を使用する方法があります。 "[^]":
preg_match_all("/\[(.*?)\]/", $text, $matches); var_dump($matches[1]);
これらの正規表現を使用すると、角かっこ内のテキストを効果的にキャプチャでき、最初の問題ステートメントで説明した目的の出力が得られます。
以上がPHP を使用して文字列から角括弧で囲まれたテキストを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。