ในการกำหนด regular expression ให้มีรูปแบบใดรูปแบบหนึ่ง (หรือ character class) ซ้ำ ๆ กัน จะเรียกว่า quantifier ซึ่งจะใช้ระบุหลังจาก pattern นั้น ๆ ที่เราต้องการให้มันซ้ำได้ และเราสามารถกำหนดได้ว่าต้องการให้ pattern นั้น ๆ ซ้ำอย่างไร ดังตารางนี้
| Quantifier | ความหมาย |
|---|---|
| ? | มี pattern นั้น ๆ จำนวน 0 หรือ 1 เท่านั้น |
| * | มี pattern นั้น ๆ ตั้งแต่ 0 ตัวขึ้นไป |
| + | มี pattern นั้น ๆ ตั้งแต่ 1 ตัวขึ้นไป |
| {n} | เราสามารถกำหนดได้โดยตรงว่าต้องการให้ซ้ำกี่ครั้ง |
| {n,m} | กำหนดว่าให้ pattern นั้น ๆ เกิดขึ้นได้น้อยสุด n ครั้งและสูงสุด m ครั้ง |
| {n,} | กำหนดว่าให้ pattern นั้น ๆ ซ้ำได้อย่างน้อย n ครั้ง |
ในการกำหนดให้มัน repeat อักขระเพียงตัวเดียว เราสามารถกำหนด quantifier ไว้ด้านหลังอักขระที่ต้องการให้ซ้ำได้เลยเช่น
<?php
$bool = ereg('ca+t', 'caaaaaaaaaaat');
// true เนื่องจากมีตัวอักษร a มากกว่า 1 ครั้งขึ้นไป
$bool = ereg('ca+t', 'ct');
// false เนื่องจากไม่มี a ในข้อความเลย (+ คือต้องมี a อย่างน้อย 1 ตัว)
$bool = ereg('ca?t', 'caaaaaaaaat');
// false เนื่องจากมี a มากกว่า 1 ตัว (? คือจะมี a หรือไม่มีก็ได้ ถ้ามีก็มีได้แค่ตัวเดียวเท่านั้น)
$bool = ereg('ca*t', 'ct');
// true เนื่องจาก * หมายความว่าจะไม่มี a เลยก็ได้ หรือจะมีกี่ตัวก็ได้ (0 - infinite)
?>
<?php
$bool = ereg('[0-9]{3}-[0-9]{3}-[0-9]{4}', '080-120-2012');
// true
$bool = ereg('[0-9]{3}-[0-9]{3}-[0-9]{4}', '08-0-102-2012');
// false
?>
ผู้สนับสนุน