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

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

Mary-Kate Olsen
リリース: 2024-11-28 15:57:10
オリジナル
1036 人が閲覧しました

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

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