ہوم › علمی مرکز › ریجیکس مسائل اور فلیگز گائیڈ
ڈویلپرز اور کوڈ

ریجیکس میچ نہ ہونے کی وجوہات: فلیگز، ملٹی لائن اینکرز اور اسکیپنگ گائیڈ

اشاعت: 9 اکتوبر 2026 • آخری اپ ڈیٹ: 3 نومبر 2026 • تحریر: GoToolstack انجینئرنگ ٹیم • ٹیسٹ شدہ: ریجیکس ٹیسٹر انجن
براؤزر میں ٹول آزمائیں: لائیو ہائی لائٹس، فلیگز (g, m, s, i, u) اور گروپ کیپچرز کے ساتھ ریجیکس ٹیسٹ کریں۔
ریجیکس ٹیسٹر کھولیں
فہرستِ مضامین
  1. ریجیکس کی مایوس کن پیچیدگیاں
  2. چار عام ریجیکس تکنیکی پھندے
  3. فلیگز کا کوئیک ریفرنس چارٹ
  4. معیارات اور دستاویزات

1. ریجیکس کی مایوس کن پیچیدگیاں

ریگولر ایکسپریشنز (RegEx) کوڈ میں پیٹرن تلاش کرنے اور ڈیٹا ویلیڈیٹ کرنے کا انتہائی طاقتور ذریعہ ہیں۔ لیکن اکثر اوقات ایک بظاہر درست پیٹرن ٹیکسٹ میں موجود الفاظ سے میچ نہیں کرتا۔ اس کی وجہ عام طور پر پیٹرن کی غلطی نہیں بلکہ فلیگز کا غلط انتخاب، اسٹیٹ فل پوائنٹرز، یا ملٹی لائن رویہ ہوتا ہے۔

2. چار عام ریجیکس تکنیکی پھندے

الف. گلوبل فلیگ (g) اور Stateful lastIndex کا جال

جاوا اسکرپٹ میں جب آپ ریجیکس پر g فلیگ لگاتے ہیں تو ریجیکس آبجیکٹ اسٹیٹ فل (Stateful) بن جاتا ہے۔ ہر بار regex.test() چلانے پر وہ پچھلے میچ کی پوزیشن کے بعد سے تلاش شروع کرتا ہے:

const re = /apple/g;
console.log(re.test("apple")); // true  (lastIndex اب 5 ہے)
console.log(re.test("apple")); // false (کیونکہ انڈیکس 5 کے بعد کچھ نہیں!)
console.log(re.test("apple")); // true  (دوبارہ صفر سے شروع ہوا)

حل: یا تو ہر بار regex.lastIndex = 0 سیٹ کریں، یا سمپل ٹیسٹنگ کے لیے g فلیگ ہٹا دیں۔

ب. ملٹی لائن اینکرز (^ اور $) کا رویہ اور m فلیگ

ڈیفالٹ طور پر کیریٹ (^) پوری اسٹرنگ کے آغاز اور ڈالر ($) پوری اسٹرنگ کے اختتام کو میچ کرتا ہے۔ اگر آپ کے پاس متعدد سطروں پر مشتمل پیراگراف ہو اور آپ ہر سطر کا پہلا لفظ پکڑنا چاہتے ہوں تو m (Multiline) فلیگ لگانا لازمی ہے تاکہ اینکرز ہر سطر کے آغاز اور اختتام پر کام کریں۔

ج. نئی سطر اور نقطہ (Dot) کا رویہ: s فلیگ

ریجیکس میں نقطہ (.) تقریباً تمام حروف کو میچ کرتا ہے سوائے نئی سطر (\n یا \r) کے۔ اگر آپ دو ٹیگز کے درمیان متعدد سطروں کا مواد پکڑنا چاہتے ہیں تو s (dotAll) فلیگ فعال کریں تاکہ نقطہ نئی سطر کو بھی میچ کر سکے۔

د. بیک سلیش اسکیپنگ کا دوہرا اثر (Escaping Nuances)

مخصوص علامات (جیسے . * + ? ^ $ { } [ ] ( ) | \) کو بطور عام حرف تلاش کرنے کے لیے ان کے آگے بیک سلیش لگانا لازمی ہے (جیسے \.)۔ پروگرامنگ کوڈ میں اسٹرنگ بناتے وقت اکثر ڈبل بیک سلیش ("\\.") درکار ہوتا ہے۔

3. فلیگز کا کوئیک ریفرنس چارٹ

فلیگ نام کردار اور اثر
g Global پہلے میچ پر رکنے کے بجائے پوری اسٹرنگ میں تمام میچز تلاش کرنا۔
i Ignore Case بڑے اور چھوٹے لاطینی حروف (A بمقابلہ a) کی تفریق ختم کرنا۔
m Multiline ^ اور $ کو ہر سطر کے آغاز اور اختتام پر نافذ کرنا۔
s dotAll نقطہ (.) کو نئی سطر (Newline) بھی میچ کرنے کی اجازت دینا۔
u Unicode یونیکوڈ 4-بائٹ ایموجیز اور غیر لاطینی سرپلس پوائنٹس کی درست گنتی۔

معیارات اور دستاویزات