【PHP】preg_replace の使い方

preg_replace 関数「正規表現」を利用して文字列を置換することができます。

様々な文字列のパターンでほとんどやりたいことができるため PHP プログラムでは重宝しています。

 

 

preg_replace の構文

preg_replace の構文は以下です。

preg_replace("正規表現で表現した検索パターン", "置換後の文字列", "置換対象の文字列");

 

3つの引数が必要です。

 

 

preg_replace の具体的な使用例

preg_replace の具体的な使用例を記載します。

 

文字列の順番を変えたい

以下は日付「2018-04-01」の順番と表示形式を変更するプログラムです。

 

【プログラム例】

[test@cent07 renshu]$ vi preg_replace.php
$test= '2018-04-01';
$pattern = '/(\d{4})-(\d{2})-(\d{2})/';
$replacement = '$3/$2/$1';
$result = preg_replace($pattern, $replacement, $test);
echo $result . "\n";
?>

 

【プログラム実行結果】

[test@cent07 renshu]$ php preg_replace.php
01/04/2018

 

 

$pattern の「()カッコ」で対象を絞ることと、対象に順番を付けることができます。(非常に便利な関数です)

 

 

$replacement で「$3/$2/$1」にすることで順番と「-」→「/」へ表示形式を変換しています。

 

 

IPアドレスを抽出して変換したい

ピンポイントでIPアドレスを抜き出して文字列を置換・変換します。

 

【プログラム例】

[test@cent07 renshu]$ vi preg_replace.php

<?php

 

$test1 = '(192.168.1.10)';
$pattern = '/(\(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\))/';
$replacement = '<span class=\"cyan\">$1';
$test1 = preg_replace($pattern, $replacement, $test1);
echo $test1 . "\n";

?>

 

 

【プログラム実行結果】

[test@cent07 renshu]$ php preg_replace.php
<span class=\"cyan\">(192.168.1.10)</span>
[test@cent07 renshu]$

 

例えば、「(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\)」を細かく分けることで第1オクテットだけを変更・置換したり、第4オクテットだけ変更・置換することが可能です。

【例】

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\) → (\d{1,3}\)\.\(\d{1,3}\)\.\(\d{1,3}\)\.\(\d{1,3}\)

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人