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

PHP正規表現を使用して角括弧で囲まれたテキストを抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-28 15:57:10991ブラウズ

How to Extract Text Enclosed in Square Brackets Using PHP Regular Expressions?

PHP で角かっこで囲まれたテキストを抽出する

PHP で角かっこ内のテキストをキャプチャするという課題には、微妙なアプローチが必要です。 /[.*?]/ を正規表現として使用する一般的な試みでは、最初のインスタンスのみが取得され、不完全な結果が残ります。

エンクロージャのキャプチャ:

この制限を克服するには、テキスト全体を角かっこで囲む正規表現を利用します。次のパターンを考えてみましょう。

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);

ここで、/[1]/ は、角括弧で囲まれた任意の文字列に対応する正規表現として機能します。キャレット文字 (^) は文字列の先頭と一致し、その後に括弧が続きます。 2 部分は括弧ではない文字を表します。アスタリスク () は任意の数の出現に一致し、末尾の括弧でパターンが終了します。

指定されたテキストに対してこの正規表現を実行すると、次の結果が得られます:

Array (
     [0] => [This]
     [1] => [test]
     [2] => [eat]
     [3] => [shorts]
)

内部のテキストのキャプチャ:

または、括弧なしのテキスト。これには、変更された正規表現が必要です。

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);

この正規表現では、(3*) は角括弧内の任意の文字をキャプチャし、出力から角括弧を効果的に削除します。

Array (
     [0] => This
     [1] => test
     [2] => eat
     [3] => shorts
)

この正規表現は、テキスト内で角かっこがネストされていないことを前提としていることに注意してください。


  1. ]
  2. ]
  3. ]

以上がPHP正規表現を使用して角括弧で囲まれたテキストを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。