正規表現は、文字列内の特定の部分文字列を検索して抽出できる強力なテキスト マッチング ツールです。 PHP プログラミングでは通常、文字列から複数の特定の文字の前後のデータを抽出する必要がありますが、この場合、正規表現を使用してこれを実現できます。
この記事では、PHP 正規表現を使用して、文字列から複数の特定の文字の前後の部分文字列を抽出する方法を紹介します。この機能を実現するには、preg_match_all 関数と正規表現を使用します。
PHP では、正規表現の一致に preg_match_all 関数を使用できます。この関数のプロトタイプは次のとおりです。
preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int
このうち、$pattern は正規表現パターン、$subject は照合する文字列、$matches は照合結果、$flags はオプションのパラメーターです。一致するパターンを示します。デフォルトは PREG_PATTERN_ORDER です。$offset は検索を開始する文字列内の位置を表します。
preg_match_all 関数を使用する前に、まず必要な正規表現を構築する必要があります。この例では、文字列から複数の特定の文字の前後の部分文字列を抽出する必要があります。これは次の 2 つの手順で実行できます:
(1) 特定の文字の前後の部分文字列を照合します。
##正規表現パターン(.*)Specificcharacters を使用して、特定の文字の前の部分文字列と一致させることができます。ここで、
.* は 0 個または複数の任意の文字と一致することを意味します。特定の文字は、抽出する必要がある文字です。
Hello world! My name is PHP. から
world と
PHP の前のすべての文字を抽出する必要がある場合, 正規表現
/^(.*)world.*s(.*)PHP.*/ を使用できます。
/^ は一致する文字列の開始位置を表し、
s はスペース文字の一致を表します。
特定の文字 (.*) 特定の文字の後の部分文字列と一致する を使用できます。ここで
.* は、0 個以上の任意の文字と一致することを意味し、特定の文字が抽出する必要がある文字です。
Hello world! My name is PHP. から
world と
PHP の後のすべての文字を抽出する必要がある場合, 正規表現
/world(.*)PHP(.*)/ を使用できます。
<?php // 待匹配的字符串 $str = 'Hello world! My name is PHP.'; // 正则表达式模式 $pattern = '/^(.*)world.*s(.*)PHP.*/'; // 使用 preg_match_all 函数匹配字符串 preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER); // 输出匹配结果 print_r($matches[1]); // 输出:Array ( [0] => Hello ) print_r($matches[2]); // 输出:Array ( [0] => My name is ) ?>
$str を定義し、次に正規表現パターン
$pattern を構築します。次に、preg_match_all 関数を使用して文字列を照合し、照合結果を
$matches 配列に保存します。最後にマッチング結果を出力します。
/^(.*)world.*s(.*)PHP.*/ 正規表現パターン マッチングを使用した結果を確認できます。 ##Hello
と My name is
は、それぞれ $matches[1]
と $matches[2]
配列に保存されます。
以上がPHP 正規表現: 文字列から複数の特定の文字の前後の部分文字列を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。