【 PHP 】PHP8に入門してみた 127日目 PHPの基本 ( 組み込み関数 正規表現 )
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
組み込み関数
正規表現の基本 preg_match関数
正規表現で文字列を検索する基本はpreg_match
です。
結果が戻り値として返ってくるのではなく、パラメータで渡した変数に結果が埋め込まれた形で「返って」きます。
これまで見てきた関数にもこのようなパターンをたびたび見てきました。
PHP
ではこれが普通なんですね。慣れないといけません😅
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHPの基本</title>
</head>
<body>
<?php
$str = '彼の電話番号は0399-88-9785、私のは0398-99-1234です。郵便番号はどちらも687-1109です。';
if (preg_match('/([0-9]{2,4})-([0-9]{2,4})-([0-9]{4})/', $str, $data)) {
print "電話番号:${data[0]} <br />";
print "市外局番:${data[1]} <br />";
print "市内局番:${data[2]} <br />";
print "加入者番号:${data[3]} <br />";
}
?>
</body>
</html>
preg_match
関数は最初にマッチした文字列だけが対象です。
マッチしたすべての文字列を取得したいならpreg_match_all
を使います。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHPの基本</title>
</head>
<body>
<?php
$str = '彼の電話番号は0399-88-9785、私のは0398-99-1234です。郵便番号はどちらも687-1109です。';
// 全部ほしい場合!
if (preg_match_all('/([0-9]{2,4})-([0-9]{2,4})-([0-9]{4})/', $str, $data, PREG_SET_ORDER)) {
foreach ($data as $item) {
print "電話番号:${item[0]} <br />";
print "市外局番:${item[1]} <br />";
print "市内局番:${item[2]} <br />";
print "加入者番号:${item[3]} <br />";
print "------------------------------------------------------------ <br />";
}
}
?>
</body>
</html>
メモ
やっと配列地獄おわり!
ディスカッション
コメント一覧
まだ、コメントがありません