آن لائن مفت میں ریگولر ایکسپریشنز کیسے ٹیسٹ اور ڈی بگ کریں (2026 گائیڈ)
ریگولر ایکسپریشنز — مختصراً ریجیکس — ان مہارتوں میں سے ایک ہیں جو اس دن تک خفیہ کوڈ لگتی ہیں جب آپ کو ان کی ضرورت پڑتی ہے، اور پھر اچانک وہ آپ کو دستی ترمیم کا ایک گھنٹہ بچا دیتی ہیں۔ ریجیکس ایک چھوٹا پیٹرن ہے جو متن کو بیان کرتا ہے: "اس دستاویز میں ہر ای میل ایڈریس تلاش کریں،" "چیک کریں کہ اس پاس ورڈ میں ایک عدد ہے،" یا "ہر تاریخ کو ایک طرح سے لکھی ہوئی کو دوسری طرح سے بدل دیں۔" مسئلہ یہ ہے کہ تقریباً درست ریجیکس بالکل درست والی جیسی ہی لگتی ہے — جب تک وہ غلط سطریں حذف نہ کر دے یا غلط ان پٹ قبول نہ کر لے۔ اسی لیے آپ کو کبھی بھی ریجیکس اندھے نہیں لکھنی چاہیے۔ یہ گائیڈ دکھاتی ہے کہ اپنے براؤزر میں مفت ٹیسٹر سے پیٹرنز کو محفوظ طریقے سے کیسے بنائیں، ٹیسٹ کریں اور ڈی بگ کریں، جس کے لیے نہ سائن اپ چاہیے نہ انسٹال۔
ریگولر ایکسپریشن اصل میں کیا ہے
ریجیکس ایک پیٹرن ہے، ایک مختصر زبان میں لکھا ہوا، جسے کمپیوٹر متن سے ملاتا ہے۔ چند بنیادی بلاکس زیادہ تر وہ سب بیان کرتے ہیں جو آپ کبھی استعمال کریں گے:
- لفظی کریکٹرز خود سے ملتے ہیں: پیٹرن
catکسی بھی متن میں "cat" سے ملتا ہے۔ .لائن بریک کے علاوہ کسی بھی ایک کریکٹر سے ملتا ہے۔- کریکٹر کلاسز جیسے
[0-9]سیٹ سے ایک کریکٹر سے ملتی ہیں — یہاں، کوئی بھی عدد۔ شارٹ ہینڈز مدد کرتے ہیں:\dکا مطلب کوئی بھی عدد،\wکا مطلب لفظ کریکٹر (حروف، اعداد، انڈر اسکور)، اور\sکا مطلب وائٹ اسپیس۔ - کوانٹیفائرز بتاتے ہیں کہ کوئی چیز کتنی بار دہرائی جا سکتی ہے:
*کا مطلب صفر یا زیادہ،+کا مطلب ایک یا زیادہ،?کا مطلب صفر یا ایک، اور{3}کا مطلب بالکل تین بار۔ - اینکرز میچ کو ایک مقام سے جوڑتے ہیں:
^کا مطلب متن (یا سطر) کا آغاز، اور$کا مطلب اختتام۔ - گروپس قوسین میں، جیسے
(\d+)، میچ کا حصہ پکڑتے ہیں تاکہ آپ اسے دوبارہ استعمال کر سکیں — مثلاً، متن بدلتے وقت۔
مل کر، پیٹرن جیسے ^\d{4}-\d{2}-\d{2}$ کہتا ہے: "پورا متن چار اعداد، ایک ڈیش، دو اعداد، ایک ڈیش، اور دو اعداد ہونا چاہیے" — 2026-10-26 کی شکل میں تاریخ۔ اسے بائیں سے دائیں، ٹکڑے ٹکڑے پڑھنا ہی پوری مہارت ہے۔ کوئی بھی لمبے پیٹرنز یاد نہیں کرتا؛ سب انہیں چھوٹے ٹکڑوں سے بناتے ہیں اور ہر ٹکڑے کو ٹیسٹ کرتے ہیں۔
مرحلہ 1: پیٹرن سے نہیں، حقیقی مثالوں سے شروع کریں
سب سے عام ریجیکس غلطی پہلے پیٹرن لکھنا اور بعد میں ٹیسٹ ڈیٹا گھڑنا ہے۔ ترتیب الٹ دیں:
- 5–10 حقیقی مثالیں جمع کریں اس متن کی جس سے آپ کا پیٹرن ملنا چاہیے — حقیقی ای میل ایڈریس، حقیقی تاریخیں، آپ کے اصل ڈیٹا سے حقیقی پروڈکٹ کوڈز۔
- 3–5 مثالیں جمع کریں جن سے یہ نہیں ملنا چاہیے۔ یہ وہ قدم ہے جو لوگ چھوڑ دیتے ہیں، اور یہی وہ ہے جو بہت وسیع پیٹرنز کو پکڑتا ہے۔ ای میل ایڈریس کا پیٹرن "not-an-email" اور "user@" کو مسترد کرنا چاہیے؛ تاریخوں کا پیٹرن "2026-13-45" کو مسترد کرنا چاہیے۔
- انہیں ٹیسٹر میں اپنی ٹیسٹ اسٹرنگ کے طور پر پیسٹ کریں، ہر سطر میں ایک، تاکہ ہر مثال ایک ہی وقت میں نظر آئے۔
ریجیکس ٹیسٹر کھولیں اور اپنی مثالیں ٹیسٹ متن والے حصے میں ڈالیں۔ اب پیٹرن میں ہر تبدیلی تمام مثالوں پر اپنا اثر فوراً دکھاتی ہے — میچز روشن ہو جاتے ہیں، غیر میچز تاریک رہتے ہیں۔ یہ لائیو فیڈ بیک لوپ ہی مکمل ڈی بگنگ طریقہ ہے: ایک چھوٹا ٹکڑا بدلیں، تمام مثالیں دیکھیں، دہرائیں۔
مرحلہ 2: پیٹرن ٹکڑے ٹکڑے بنائیں
ایک ہی بار میں مکمل پیٹرن لکھنے کی کوشش نہ کریں۔ اسے مراحل میں بنائیں، ہر مرحلے کے بعد ٹیسٹ کریں:
- پہلے ایک مثال سے ملائیں۔ اگر آپ کو 0300-1234567 جیسے فون نمبرز سے ملانا ہے تو
\d+سے شروع کریں اور تصدیق کریں کہ یہ اعداد سے ملتا ہے۔ پھر ڈیش شامل کریں:\d+-\d+۔ پھر لمبائی سخت کریں:\d{4}-\d{7}۔ - اینکرز صرف اس وقت شامل کریں جب آپ کا مطلب "پورا" ہو۔
^اور$کے بغیر، پیٹرن متن میں کہیں بھی ملتا ہے — تلاش کے لیے مفید، توثیق کے لیے خطرناک۔ توثیق والا پیٹرن (مثلاً فارم فیلڈ کے لیے) تقریباً ہمیشہ دونوں اینکرز چاہتا ہے۔ - ہر مرحلے کے بعد منفی مثالیں ٹیسٹ کریں۔ جس لمحے "نہیں ملنا چاہیے" والی مثال روشن ہو جائے، آپ نے بالکل وہ ٹکڑا ڈھونڈ لیا ہے جو بہت وسیع ہو گیا تھا — اور آپ اسے پیٹرن کے مزید بڑھنے سے پہلے جانتے ہیں۔
- دوبارہ استعمال ہونے والے حصوں کے لیے گروپس استعمال کریں۔ اگر آپ تاریخوں کو 26/10/2026 سے 2026-10-26 میں دوبارہ فارمیٹ کرنے کا ارادہ رکھتے ہیں تو دن، مہینہ اور سال کو تین گروپس کے طور پر پکڑیں —
(\d{2})/(\d{2})/(\d{4})— تاکہ تبدیلی ہر حصے کو الگ سے حوالہ دے سکے۔
یہ مرحلہ وار طریقہ پہلے پیٹرن کے لیے سست لگتا ہے اور اس کے بعد ہر پیٹرن کے لیے تیز، کیونکہ آپ تیار شدہ عفریتوں کو ڈی بگ کرنا بند کر دیتے ہیں اور ٹیسٹ شدہ ٹکڑوں کو جوڑنا شروع کر دیتے ہیں۔
مرحلہ 3: صرف میچ کی تعداد نہیں، میچ کو پڑھیں
ایک ٹیسٹر جو صرف "3 میچز ملے" کہتا ہے، سب سے مفید معلومات چھپاتا ہے۔ دیکھیں کہ اصل میں کیا ملا، کریکٹر بہ کریکٹر:
- کیا میچ پورا ہے، یا ذیلی اسٹرنگ؟ "الفاظ" کا پیٹرن جو لمبے لفظ کے صرف پہلے تین حروف سے ملتا ہے، اس طرح غلط ہے جو گنتی ظاہر نہیں کرے گی۔
- کیا یہ خالی اسٹرنگ سے ملا؟
*والے پیٹرن ہر مقام پر کچھ نہیں سے مل سکتے ہیں — الجھن والے نتائج اور لامتناہی نظر آنے والی آؤٹ پٹ کا کلاسک ذریعہ۔ - کیا گروپس وہی پکڑ رہے ہیں جو آپ توقع کرتے ہیں؟ تبدیلی میں استعمال کرنے سے پہلے ہر گروپ کا پکڑا ہوا متن چیک کریں؛ ایک گروپ جو ایک کریکٹر پہلے شروع ہوتا ہے، ہر تبدیلی کو خراب کر دے گا جسے وہ چھوتا ہے۔
- کیا یہ ہر سطر پر ایک جیسا برتاؤ کرتا ہے؟ کئی سطری ان پٹ سے ٹیسٹ کریں۔ ایک سطر پر کام کرنے والا پیٹرن اگلی سطر پر ناکام ہو سکتا ہے کیونکہ لائن بریکس، آخر میں خالی جگہیں، یا حقیقی ڈیٹا کے درمیان مختلف فارمیٹ ہیں۔
اگر کوئی میچ آپ کو حیران کرے تو ٹیسٹ اسٹرنگ کو سب سے چھوٹی مثال تک سکڑا دیں جو اب بھی حیران کرتی ہے۔ دس سطری ان پٹ جو غلط برتاؤ کرتی ہے، اس کے بارے میں سوچنا مشکل ہے؛ ایک سطر جو غلط برتاؤ کرتی ہے، بالکل بتاتی ہے کہ کہاں دیکھنا ہے۔
پانچ غلطیاں جو سب کرتے ہیں (اور ہر ایک کا حل)
- خاص کریکٹرز کو ایسکیپ کرنا بھولنا۔
.،+،(اور?جیسے کریکٹرز ریجیکس میں خاص معنی رکھتے ہیں۔ "example.com" میں لفظی ڈاٹ سے ملانے کے لیے\.لکھیں،.نہیں — ورنہ ڈاٹ کسی بھی کریکٹر سے ملے گا، بشمول وہ جو آپ نے کبھی نہیں چاہے تھے۔ - لالچی میچنگ بہت زیادہ کھا جانا۔ بطور ڈیفالٹ،
.*جتنا ممکن ہو اتنا ملتا ہے۔ "<b>bold</b>" پر لاگو پیٹرن جیسے<.*>صرف پہلے ٹیگ کے بجائے پوری اسٹرنگ سے ملتا ہے۔ اسے سست بنانے کے لیے?شامل کریں —<.*?>— اور یہ پہلے بند ہونے والے ٹیگ پر رک جاتا ہے۔ - توثیق پیٹرنز پر اینکرز نہیں۔ چار ہندسوں والے کوڈ کے لیے فارم چیک جو
\d{4}لکھا گیا ہے، خوشی سے "abc1234xyz" قبول کرتا ہے، کیونکہ اعداد اندر کہیں ظاہر ہوتے ہیں۔ اینکرز —^\d{4}$— ہی "شامل ہے" کو "بالکل یہی ہے" میں بدلتے ہیں۔ - بہت فراخ کریکٹر کلاسز۔
[A-Za-z]+اس وقت تک محفوظ لگتا ہے جب تک وہ عدد سے پاک لیکن ویسے غلط فارمیٹ والا نام قبول نہ کر لے، یا صارف ناموں کا پیٹرن خالی جگہیں قبول نہ کر لے کیونکہ\wکو "کوئی بھی کریکٹر" سمجھا گیا تھا۔ ہر کلاس کو اپنی منفی مثالوں سے چیک کریں۔ - صرف خوشگوار راستہ ٹیسٹ کرنا۔ تین کامل مثالوں پر ٹیسٹ شدہ اور صفر نامکمل مثالوں پر ٹیسٹ شدہ پیٹرن غیر ٹیسٹ شدہ ہے۔ خالی اسٹرنگز، اضافی خالی جگہیں، غائب حصے، اور ملے ہوئے فارمیٹس وہ ان پٹس ہیں جو حقیقی صارفین اور حقیقی ڈیٹا اصل میں رکھتے ہیں — ان کو پہلے ٹیسٹ کریں، آخر میں نہیں۔
تین عملی پیٹرنز، لائیو بنائے گئے
اپنی مثالوں کے ساتھ ریجیکس ٹیسٹر میں یہ آزمائیں:
- ای میل چیک (بنیادی):
^[\w.]+@[\w]+\.[a-z]{2,}$— ایک یا زیادہ لفظ کریکٹرز یا ڈاٹس، @ نشان، ڈومین، ڈاٹ، اور کم از کم دو حروف کا ڈومین اختتام۔ یہ سمجھداری کی جانچ ہے، مکمل ای میل توثیق نہیں — حقیقی ای میل قواعد کہیں زیادہ پیچیدہ ہیں، اور پروڈکشن توثیق کے لیے مخصوص لائبریری کسی بھی واحد پیٹرن کو شکست دیتی ہے۔ - متن میں تمام اعداد تلاش کریں:
\d+(\.\d+)?— پورے اعداد اور اعشاریے، گندے متن سے قیمتیں یا پیمائشیں نکالنے کے لیے مفید، انہیں کیلکولیٹر میں پیسٹ کرنے سے پہلے۔ - اضافی خالی جگہیں صاف کریں: پہلے دہرائی ہوئی خالی جگہوں کو پیٹرن
\s+سے ایک خالی جگہ سے بدل کر سکیڑیں، پھر نتیجہ کو ورڈ کاؤنٹر سے چیک کریں تاکہ تصدیق ہو کہ متن کی لمبائی آپ کی توقع کے مطابق بدلی ہے۔
ٹیسٹر کو دیگر مفت ٹولز کے ساتھ جوڑنا
ریجیکس کام شاذ و نادر ہی اکیلا ہوتا ہے۔ چند مفت براؤزر ٹولز ورک فلو مکمل کرتے ہیں:
- پہلے گندا ان پٹ تیار کریں: ٹیسٹ کرنے سے پہلے پیسٹ شدہ متن کو وائٹ اسپیس ریموور سے گزاریں تاکہ فالتو خالی جگہیں اور خالی سطریں ہٹ جائیں، تاکہ آپ کے پیٹرن کا فیصلہ حقیقی مواد پر ہو، فارمیٹنگ شور پر نہیں۔
- لمبائی اور گنتی چیک کریں: تلاش اور تبدیلی کے بعد کہیں بھی استعمال کرنے سے پہلے صاف شدہ متن کی تصدیق کے لیے ورڈ کاؤنٹر یا کیس کنورٹر استعمال کریں۔
- ٹیسٹ ڈیٹا بنائیں: ٹیسٹ کے لیے دس نمونہ نام، اعداد یا جملے چاہییں؟ Lorem Ipsum جنریٹر سیکنڈوں میں حقیقت پسندانہ فلر متن دیتا ہے۔
- پیٹرنز محفوظ رکھیں: ریجیکس پیٹرنز کوڈ ہیں۔ کام کرنے والے پیٹرنز کو سادہ متن نوٹ میں محفوظ کریں، ہر ایک کے ساتھ ایک مثال جس سے وہ ملتا ہے اور ایک جس سے وہ مسترد کرتا ہے — مستقبل کا آپ شکر گزار ہوگا، اور جو کوئی بھی پیٹرن ورثے میں لے گا وہ بھی۔
عمومی سوالات
کیا ریجیکس ٹیسٹ کرنے کے لیے کچھ انسٹال کرنا ضروری ہے؟
نہیں۔ ریجیکس ٹیسٹر مکمل طور پر آپ کے براؤزر میں چلتا ہے — بغیر سائن اپ، بغیر انسٹال، اور آپ کا ٹیسٹ متن کبھی آپ کے ڈیوائس سے باہر نہیں جاتا۔ یہ آخری نکتہ اہم ہے: کبھی بھی پاس ورڈز، نجی گاہک ڈیٹا، یا خفیہ دستاویزات بے ترتیب آن لائن ٹیسٹر میں پیسٹ نہ کریں۔ صرف براؤزر والا ٹول آپ کا ٹیسٹ ڈیٹا آپ کی اپنی مشین پر رکھتا ہے۔
میرا پیٹرن ٹیسٹر میں کیوں کام کرتا ہے لیکن میرے کوڈ میں نہیں؟
مختلف پروگرامنگ زبانوں میں ریجیکس کے ذائقے تھوڑے مختلف ہوتے ہیں — ایسکیپنگ قواعد، لائن اینکر رویہ، اور حمایت شدہ خصوصیات مختلف ہوتی ہیں۔ چیک کریں کہ آیا آپ کی زبان کو دوہری ایسکیپنگ چاہیے (کئی زبانوں میں، کوٹ شدہ اسٹرنگ کے اندر بیک سلیش دو بار لکھنا ضروری ہے)، اور بھیجنے سے پہلے پیٹرن کو اپنی زبان کے اپنے ٹیسٹر یا چھوٹی اسکرپٹ میں ٹیسٹ کریں۔
کیا ریجیکس ہر متن مسئلے کے لیے درست ٹول ہے؟
نہیں — اور یہ جاننا کہ کب اسے استعمال نہیں کرنا ہے، مہارت کا حصہ ہے۔ HTML، ساختہ ڈیٹا فارمیٹس، یا مکمل ای میل توثیق کے لیے مخصوص پارسرز اور لائبریریز زیادہ محفوظ اور زیادہ پڑھنے والی ہیں۔ ریجیکس تلاش، سادہ فارمیٹس کی توثیق، اور متن صاف کرنے کے لیے چمکتا ہے — اور اس وقت ذمہ داری بن جاتا ہے جب پیٹرن اس کی وضاحت سے لمبا ہو جائے کہ وہ کیا کرتا ہے۔
میں ریجیکس میں بہتر کیسے ہو سکتا ہوں؟
اسی طرح جیسے یہاں: چھوٹے پیٹرنز، حقیقی مثالیں، لائیو ٹیسٹنگ۔ ہر پیٹرن جو آپ بناتے اور ڈی بگ کرتے ہیں، زبان کا تھوڑا اور سکھاتا ہے، اور چند ہفتوں میں وہ پیٹرنز جو کبھی خفیہ کوڈ لگتے تھے، عام جملوں کی طرح پڑھنے لگتے ہیں۔
ابھی شروع کریں: ریجیکس ٹیسٹر کھولیں، اپنے حقیقی متن کی تین سطریں پیسٹ کریں، اور ایک چھوٹا پیٹرن بنائیں جو بالکل وہی ملائے جو آپ چاہتے ہیں — اور کچھ بھی نہیں جو آپ نہیں چاہتے۔