تکرارکننده ها (RegExp Quantifiers)
در «عبارات منظم (Regular Expression)»، «تکرارکننده (Quantifier)» می گوید یک الگو چندبار تکرار شود. با آن می گوییم حداقل، حداکثر، یا دقیقاً چند بار.
x+ یعنی یک بار یا بیشتر
علامت + می گوید از الگوی قبل، حداقل یک بار بیاید. مثل صف طولانی: کم کم ولی حداقل یک نفر.
let text = "Hellooo World! Hello W3Schools!";
const pattern = /lo+/g;
let result = text.match(pattern);
x* یعنی صفر یا بیشتر
علامت * می گوید ممکن است صفر بار یا خیلی زیاد بیاید. مثل حضور اختیاری در کلاس.
let text = "Hellooo World! Hello W3Schools!";
const pattern = /lo*/g;
let result = text.match(pattern);
x? یعنی صفر یا یک بار
علامت ? می گوید حضور «اختیاری» است؛ یا هست یا نیست. مثل علامت سوال آخر جمله.
let text = "1, 100 or 1000?";
const pattern = /10?/g;
let result = text.match(pattern);
x{n} یعنی دقیقاً n بار
آکلاد عدددار {n} می گوید دقیقاً همین تعداد تکرار شود. مثل کد چهاررقمی.
let text = "100, 1000 or 10000?";
let pattern = /\d{4}/g;
let result = text.match(pattern);
x{n,m} یعنی از n تا m بار
الگو با {n,m} بازه کمینه تا بیشینه را مشخص می کند. مثل محدوده نمره قبولی.
let text = "100, 1000 or 10000?";
let pattern = /\d{3,4}/g;
let result = text.match(pattern);
x{n,} یعنی حداقل n بار
وقتی m را حذف کنیم، {n,} یعنی از n به بالا. مثل حداقل ظرفیت کلاس.
let text = "100, 1000 or 10000?";
let pattern = /\d{3,}/g;
let result = text.match(pattern);
تمرین های سریع
- با
o+دنباله های «o» را در متن بگیر. - با
\d{4}فقط سال های چهاررقمی پیدا کن. - با
\d{3,}اعداد حداقل سه رقمی بگیر.
نکته: برای مرزها به گزاره ها (RegExp Assertions) برو. برای کلاس کاراکترها هم کلاس های کاراکتری (RegExp Classes) را ببین. الگوهای کلی در الگوها (RegExp Patterns) ادامه دارد.
جمع بندی سریع
+حداقل یک بار است.*صفر یا بیشتر است.?صفر یا یک بار است.{n}دقیقاً n بار است.{n,m}بازه تکرار را می دهد.