正規表現は、大量のテキストから必要なコンテンツを抽出するのに役立つ強力なテキスト処理ツールです。 PHPでも正規表現を使うととても便利なので、今回は文字列から特定の文字の前後の部分文字列を抽出する方法を紹介します。
PHP では、preg_match 関数を使用して、文字列から必要なコンテンツを非常に簡単に抽出できます。この関数の最初のパラメータは正規表現、2 番目のパラメータは検索する文字列、3 番目のパラメータは一致した結果を格納するために使用できる配列です。
たとえば、文字列「Hello world」から「Hello」部分文字列を抽出する場合は、次のコードを使用できます。
$pattern = '/w+/'; $str = 'Hello world'; preg_match($pattern, $str, $matches); echo $matches[0]; // 输出 "Hello"
上記のコードでは、通常の式 w
が指定されており、1 つ以上の文字、数字、またはアンダースコアと一致します。したがって、preg_match 関数は「Hello」部分文字列と一致し、それを $matches 配列の最初の要素に格納できます。
同様に、文字列「I am a boy」から「boy」部分文字列を抽出したい場合は、次のコードを使用できます。
$pattern = '/w+/'; $str = 'I am a boy'; preg_match($pattern, $str, $matches); echo $matches[2]; // 输出 "boy"
上記のコードでは、正規表現 w
、単語の一致を意味します。 3 番目の単語が一致するため、$matches 配列には 3 番目の一致である「boy」が格納されます。
文字列から複数の部分文字列を抽出する場合は、preg_match_all 関数を使用できます。この関数は preg_match 関数に似ていますが、一致するすべての部分文字列と一致し、それらを $matches 配列に格納します。
たとえば、「私は猫と犬を飼っています」という文字列からすべての動物の名前を抽出したい場合、次のコードを使用できます。
$pattern = '/[a-z]+/'; $str = 'I have a cat and a dog'; preg_match_all($pattern, $str, $matches); print_r($matches[0]); // 输出 Array("cat", "and", "dog")
上記のコードでは、正規表現 [a-z]
を使用しました。これは、文字で始まり文字で終わる単語と一致します。条件を満たすすべての部分文字列が照合されるため、一致したすべての部分文字列は $matches 配列に格納されます。
preg_replace 関数を使用すると、文字列から部分文字列を抽出するだけでなく、文字列内の特定の部分文字列を他の文字列に置き換えることもできます。この関数の最初のパラメータは置換される正規表現、2 番目のパラメータは置換される文字列、3 番目のパラメータは処理される文字列、4 番目のパラメータは置換の数です (省略可能、デフォルトは -1) 、すべての一致を置き換えます)。
たとえば、「猫は大好きですが、犬は嫌いです」という文字列の「猫」を「犬」に置き換えたい場合は、次のコードを使用できます。
$pattern = '/cats/'; $replacement = 'dogs'; $str = 'I love cats, but I hate dogs'; echo preg_replace($pattern, $replacement, $str); // 输出 "I love dogs, but I hate dogs"
上記コードでは、正規表現「cats」を使用して置換される部分文字列と一致し、それを「dogs」に置き換えます。
要約すると、正規表現を使用すると、文字列から特定の文字の前後の部分文字列を簡単に抽出できます。この機能は、PHP で preg_match、preg_match_all、preg_replace 関数を使用して簡単に実現できます。
以上がPHP 正規表現: 文字列から特定の文字の前後の部分文字列を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。