preg_replace 関数で「正規表現」を利用して文字列を置換することができます。
様々な文字列のパターンでほとんどやりたいことができるため PHP プログラムでは重宝しています。
preg_replace の構文
preg_replace の構文は以下です。
preg_replace(“正規表現で表現した検索パターン”, “置換後の文字列”, “置換対象の文字列”); |
3つの引数が必要です。
- 第1引数 ← 正規表現で表現した検索パターン
- 第2引数 ← 置換後の文字列
- 第3引数 ← 置換対象の文字列
preg_replace の具体的な使用例
preg_replace の具体的な使用例を記載します。
文字列の順番を変えたい
以下は日付「2018-04-01」の順番と表示形式を変更するプログラムです。
【プログラム例】
[test@cent07 renshu]$ vi preg_replace.php |
【プログラム実行結果】
[test@cent07 renshu]$ php preg_replace.php |
$pattern の「()カッコ」で対象を絞ることと、対象に順番を付けることができます。(非常に便利な関数です)
- 最初のカッコの部分 ← $1 になる
- 2番目のカッコの部分 ← $2 になる
- 3番目のカッコの部分 ← $3 になる
$replacement で「$3/$2/$1」にすることで順番と「-」→「/」へ表示形式を変換しています。
IPアドレスを抽出して変換したい
ピンポイントでIPアドレスを抜き出して文字列を置換・変換します。
【プログラム例】
[test@cent07 renshu]$ vi preg_replace.php <?php
$test1 = ‘(192.168.1.10)’; ?> |
【プログラム実行結果】
[test@cent07 renshu]$ php preg_replace.php |
例えば、「(\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}\)
コメント