ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して文字列から角括弧で囲まれたテキストを抽出するにはどうすればよいですか?

PHP を使用して文字列から角括弧で囲まれたテキストを抽出するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-26 20:29:10
オリジナル
719 人が閲覧しました

How Can I Extract Text Enclosed in Square Brackets from a String Using PHP?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート