トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

11-1 PHPの正規表現の使用例

正規表現パズル

PHPの、HelloWorldから正規表現を使用するまでの
PHPのサンプルプログラムです。

PHPの絵本でPHPを学びました。


#HelloWorld (PHP環境を覚える)

<?php
echo "HelloWorld\n";
echo "HelloPHP\n";


#定数を出力

<?php
echo PHP_VERSION;
echo "\n";
echo PHP_OS;


#1から100までの和を求める (forを覚える)

<?php
$sum = 0;

for ($i = 1; $i <= 100; $i++)
    $sum += $i;

echo "sum from 1 to 100 = $sum"


#1から100までの和を求める (whileを覚える)

<?php
$sum = 0;$i = 1;

while ($i <= 100)
    $sum += $i++;

echo "sum from 1 to 100 = $sum"


#FizzBuzz問題 (ifを覚える)

<?php
for ($i = 1; $i <= 100; $i++)
    if ($i%3 == 0 and $i%5 == 0)
        echo "FizzBuzz\n";
    elseif ($i%3 == 0)
        echo "Fizz\n";
    elseif ($i%5 == 0)
        echo "Buzz\n";
    else
        echo "$i\n";


#1から100までを配列にセット (配列の扱いを覚える)

<?php
$arr = array();
$arr[] = 0;
for ($i = 1; $i <= 100; $i++) {
    $arr[] = $i;
}

print_r($arr);


#正規表現で^[ac][1-8]な文字列を検索 (正規表現の扱い方を覚える)

<?php
define('ConstRegex','^[ac][1-8]');
$arr = array();
$arr[] = 'a15';
$arr[] = 'a81';
$arr[] = 'a92';
$arr[] = 'b13';
$arr[] = 'b84';
$arr[] = 'b96';
$arr[] = 'c17';
$arr[] = 'c88';
$arr[] = 'c99';

echo 'Pattern ' . ConstRegex;

for ($i = 0; $i <= count($arr)-1; $i++) {
    $willOut = "\nLine" . ($i+1) . ' ' . $arr[$i];

    if (preg_match('/' . ConstRegex . '/',$arr[$i],$matchArr))
        $willOut .= ' matchs ' . $matchArr[0];
    else
        $willOut .= ' no match';

    echo $willOut;
}

#実行結果
Pattern ^[ac][1-8]
Line1 a15 matchs a1
Line2 a81 matchs a8
Line3 a92 no match
Line4 b13 no match
Line5 b84 no match
Line6 b96 no match
Line7 c17 matchs c1
Line8 c88 matchs c8
Line9 c99 no match