مواد پر جائیں

JavaScript ریگولر ایکسپریشنز کے لیے Regex ٹیسٹر

پیٹرن لکھیں، کچھ ٹیکسٹ پیسٹ کریں اور لکھتے لکھتے میچ نمایاں ہوتے دیکھیں۔ Capture groups، فلیگز اور replace سب نظر آتے ہیں، اور کچھ بھی آپ کے براؤزر سے باہر نہیں جاتا۔

فلیگز

یہ آپ کے براؤزر کا JavaScript regex انجن (ECMAScript) استعمال کرتا ہے، وہی جو Node.js میں ہے۔

آپ کے ٹیکسٹ میں میچ

مدد کے لیے ali.khan@example.com یا support@fileora.tools پر رابطہ کریں۔ غلط: user@localhost

ریگولر ایکسپریشن کیسے ٹیسٹ کریں

  1. اپنا پیٹرن لکھیں Regular expression والے خانے میں، دونوں طرف کے slash کے بغیر۔ شروع میں ای میل ایڈریس ڈھونڈنے والا ایک نمونہ پیٹرن پہلے سے لوڈ ہوتا ہے۔
  2. فلیگز چنیں g، i، m، s، u یا y پر ٹیپ کر کے۔ فعال فلیگز پیٹرن کے آخری slash کے بعد نظر آتے ہیں۔
  3. اپنا ٹیسٹ ٹیکسٹ پیسٹ کریں ٹیسٹ ٹیکسٹ والے خانے میں۔ ہر میچ آپ کے ٹیکسٹ میں میچ والے حصے میں نمایاں ہو جاتا ہے، اور اوپر تعداد لکھی ہوتی ہے۔
  4. چاہیں تو متبادل ٹیکسٹ لکھیں، جیسے $1 یا $<name>، اس سے بدلیں (اختیاری) والے خانے میں، اور بدلنے کے بعد کا ٹیکسٹ دیکھیں۔
  5. میچ کی تفصیل والا جدول دیکھیں، جس میں ہر میچ کا مقام اور ہر capture group کی ویلیو ہوتی ہے۔

خصوصیات

  • لائیو ہائی لائٹنگ، لکھتے ساتھ میچ نمایاں ہوتے ہیں۔
  • JavaScript کے تمام چھ فلیگز: گلوبل، چھوٹے بڑے حروف کا فرق نہیں، ملٹی لائن، dot-all، Unicode اور sticky۔
  • Capture groups ایک جدول میں، نام والے گروپس اپنے ناموں کے ساتھ۔
  • Replace کا پیش منظر جو $1، $<name> اور $& سپورٹ کرتا ہے، کاپی بٹن کے ساتھ۔
  • میچز کی تعداد اور مقام، پہلے 1,000 میچز کی فہرست کے ساتھ۔
  • بے قابو پیٹرنز سے حفاظت: حساب Web Worker میں ہوتا ہے اور 1.5 سیکنڈ بعد روک دیا جاتا ہے۔
  • واضح error پیغامات انجن کی طرف سے، جب پیٹرن غلط ہو، جیسے کوئی گروپ بند نہ کیا گیا ہو۔

Fileora کا Regex ٹیسٹر کیوں استعمال کریں

ٹیسٹ ڈیٹا اکثر اصلی ڈیٹا ہوتا ہے: سرور لاگز، کسٹمرز کے ایکسپورٹ، ای میل کی فہرستیں۔ Fileora ریگولر ایکسپریشن آپ کے براؤزر میں چلاتا ہے، اس لیے اس میں سے کچھ بھی آپ کے ڈیوائس سے باہر نہیں جاتا۔ یہ مفت ہے، سائن اپ کی ضرورت نہیں، اور فلیگ کے بٹن اتنے بڑے ہیں کہ فون پر بھی آرام سے دبائے جا سکیں۔

چونکہ ٹیسٹر وہی انجن استعمال کرتا ہے جو آپ کا JavaScript کوڈ کرتا ہے، اس لیے پیٹرن اپنے پروجیکٹ میں کاپی کرنے پر کوئی حیرت نہیں ہوتی۔

JavaScript regex کی مختصر گائیڈ

  • . لائن بریک کے سوا کوئی بھی حرف (s فلیگ کے ساتھ بالکل کوئی بھی حرف)
  • \d، \w، \s ایک ہندسہ، ایک word حرف (انگریزی حرف، ہندسہ یا underscore)، ایک خالی جگہ والا حرف
  • \D، \W، \S اوپر والوں کا الٹ
  • [abc]، [^abc]، [a-z] سیٹ میں سے ایک حرف، سیٹ سے باہر کا حرف، یا کسی رینج کا حرف
  • ^ اور $ ٹیکسٹ کا شروع اور آخر، یا m فلیگ کے ساتھ ہر لائن کا
  • \b لفظ کی حد
  • *، +، ? صفر یا زیادہ، ایک یا زیادہ، صفر یا ایک
  • {3}، {2,5} ٹھیک 3 بار، یا 2 سے 5 بار تک
  • *?، +? lazy ورژن جو کم سے کم میچ کرتے ہیں
  • (abc) capture group؛ (?:abc) ایسا گروپ جو capture نہیں کرتا
  • (?<year>\d{4}) نام والا گروپ، جسے replace میں $<year> لکھا جاتا ہے
  • a|b یا a یا b
  • (?=x)، (?!x) جس کے بعد x ہو، جس کے بعد x نہ ہو
  • (?<=x)، (?<!x) جس سے پہلے x ہو، جس سے پہلے x نہ ہو
  • \p{L} کسی بھی رسم الخط کا کوئی بھی حرف، u فلیگ کے ساتھ

اردو ٹیکسٹ کے ساتھ regex

\w صرف انگریزی حروف، ہندسے اور underscore پہچانتا ہے، اس لیے یہ اردو الفاظ میچ نہیں کرتا۔ اردو یا ہندی ٹیکسٹ کے لیے u فلیگ آن کریں اور \p{L}+ استعمال کریں، یا عربی رسم الخط کی رینج کے لیے [؀-ۿ]+ لکھیں۔ اسی طرح \b بھی اردو الفاظ کی حدیں درست نہیں پہچانتا، اس لیے وہاں اسپیس یا lookaround سے کام لیں۔

سست پیٹرنز سے کیسے بچیں

Catastrophic backtracking عموماً ایسے repeat والے گروپ سے آتی ہے جس کے اندر ایک اور repeat ہو، جیسے (a+)+ یا (\w+\s?)*۔ ہر حصے کو کوئی الگ چیز میچ کرنے دیں، جہاں ممکن ہو پیٹرن کو ^ اور $ سے باندھیں، اور .* کے بجائے مخصوص حروف کے سیٹ استعمال کریں۔

کسی لمبی فائل پر replace کا اثر جانچنے کے لیے پہلے اور بعد کا موازنہ ڈِف چیکر میں کریں۔ بغیر پیٹرن لکھے سادہ الفاظ بدلنے ہوں تو تلاش کریں اور بدلیں کافی ہے، اور نکالا گیا JSON JSON فارمیٹر سے صاف کریں۔

اکثر پوچھے جانے والے سوالات

یہ ٹیسٹر کون سا regex انداز (flavour) استعمال کرتا ہے؟

یہ آپ کے براؤزر کا اپنا JavaScript regular expression انجن استعمال کرتا ہے، جو ECMAScript معیار پر چلتا ہے اور Node.js جیسا ہی برتاؤ کرتا ہے۔ جو پیٹرن یہاں چلتے ہیں وہ JavaScript اور TypeScript کوڈ میں بھی چلیں گے۔ PCRE، Python یا .NET جیسے دوسرے انداز کی syntax اور خصوصیات میں کچھ فرق ہے، اس لیے انہیں ان کے اپنے ماحول میں ٹیسٹ کریں۔

فلیگز g، i، m، s، u اور y کیا کرتے ہیں؟

g صرف پہلے میچ کے بجائے تمام میچ ڈھونڈتا ہے۔ i چھوٹے بڑے حروف کا فرق ختم کر دیتا ہے۔ m سے ^ اور $ ہر لائن کے شروع اور آخر پر میچ ہوتے ہیں۔ s سے نقطہ (.) لائن بریک سے بھی میچ ہوتا ہے۔ u مکمل Unicode موڈ آن کرتا ہے، جو \p{L} جیسی چیزوں کے لیے ضروری ہے۔ y (sticky) صرف اسی جگہ میچ کرتا ہے جہاں پچھلا میچ ختم ہوا تھا۔

Replace میں capture groups کیسے استعمال کروں؟

اس سے بدلیں والے خانے میں متبادل ٹیکسٹ لکھیں۔ نمبر والے گروپس کے لیے $1، $2 وغیرہ، نام والے گروپ کے لیے $ کے بعد تکونی بریکٹس میں اس کا نام، اور پورے میچ کے لیے $& استعمال کریں۔ بدلنے کے بعد نتیجہ والا حصہ پورا ٹیکسٹ ہر تبدیلی کے ساتھ دکھاتا ہے، اور آپ اسے کاپی کر سکتے ہیں۔

میرا پیٹرن بہت دیر لینے کی وجہ سے کیوں روک دیا گیا؟

کچھ پیٹرن، جیسے (a+)+ جس کے بعد کوئی ایسی چیز ہو جو میچ نہ کرے، انجن کو بے شمار امکانات آزمانے پر مجبور کر دیتے ہیں۔ اسے catastrophic backtracking کہتے ہیں۔ ٹیسٹر ہر پیٹرن کو الگ بیک گراؤنڈ worker میں چلاتا ہے اور 1.5 سیکنڈ بعد روک دیتا ہے تاکہ صفحہ کبھی جام نہ ہو۔ پیٹرن کو اس طرح دوبارہ لکھیں کہ اندر والے repeat ایک ہی ٹیکسٹ کو مختلف طریقوں سے میچ نہ کر سکیں۔

کیا میچز کی تعداد کی کوئی حد ہے؟

میچز کی کل تعداد ہمیشہ گنی اور دکھائی جاتی ہے، مگر صفحہ تیز رکھنے کے لیے میچ کی تفصیل والے جدول میں پہلے 1,000 میچ ہی آتے ہیں۔ ٹیکسٹ میں ہائی لائٹنگ بھی انہی پہلے 1,000 میچز تک ہوتی ہے۔

کیا میرا ٹیسٹ ٹیکسٹ کسی سرور پر بھیجا جاتا ہے؟

نہیں۔ پیٹرن اور ٹیکسٹ آپ کے براؤزر کے اندر ایک Web Worker میں پروسیس ہوتے ہیں۔ کچھ بھی اپ لوڈ یا محفوظ نہیں ہوتا، اس لیے آپ لاگ فائلوں یا ذاتی معلومات والے ڈیٹا پر بھی ٹیسٹ کر سکتے ہیں۔

آپ کو مطلوبہ ٹول نہیں ملا، یا کچھ کام نہیں کر رہا؟

ہمیں بتائیں کہ آپ کو اگلا کون سا ٹول چاہیے یا کیا خرابی ہوئی۔ ہم ہر پیغام پڑھتے ہیں، اور درخواستوں سے ہی طے ہوتا ہے کہ ہم آگے کیا بنائیں۔

آپ کی ای میل ایپ کھلے گی۔ براہِ کرم نجی فائلیں منسلک نہ کریں۔