文字の繰り返しを表すメタ文字というのがあります。
下記のメタ文字は、記号の直前の文字を繰り返すことを表します。
* | 0回以上 |
---|---|
+ | 1回以上 |
? | 0または1回 |
{a} | a回 |
{a,} | a回以上 |
{a,b} | a~b回 |
*は0回以上の繰り返し、+は1回以上の繰り返し?hは0又は1回を表します。
A{5}は「A」の5回の繰り返しを表します。
A{3,5}と書けば、Aの3回~5回以下の繰り返しを表します。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>行と・行末を表す正規表現</title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php $pat = array("A*","A+" ,"A?" ,"A{3}"); $str = array("Z" ,"AA" ,"AAA","AAAA"); ?> <table border="3"> <tr> <th>pattern</th> <th>string</th> <th>match</th> </tr> <?php foreach($pat as $valuePat){ foreach($str as $valueStr){ echo "<tr>"; echo "<td>{$valuePat}</td>"; echo "<td>{$valueStr}</td>"; $match = preg_match("/" . $valuePat . "/", $valueStr ); if( $match ){ $match = "YES"; }else{ $match = "NO"; } echo "<td>{$match}</td>"; echo "</tr>"; } } ?> </table> </body> </html> |