مفت کنورٹر

ریجیکس ٹیسٹر

اپنے براؤزر میں فوری طور پر ریگولر ایکسپریشنز کی جانچ اور ڈیبگ کریں۔ مماثلتوں کو نمایاں کریں، کیپچر گروپ دیکھیں، اور ریپلیس موڈ استعمال کریں — مفت اور نجی۔

//g
جھنڈے:

اس ٹول کے بارے میں

ریگولر ایکسپریشنز متن میں نمونوں کو ملانے کے لیے ڈومین کے لیے مخصوص زبان ہیں۔ وہ 1968 سے کمپیوٹنگ کا حصہ ہیں اور اب ہر جدید پروگرامنگ زبان، ٹیکسٹ ایڈیٹر، اور کمانڈ لائن سرچ ٹول میں شامل ہیں۔ نحو جامع ہے لیکن غلطی کا شکار ہے: چھوٹی تبدیلیاں بالکل مختلف مماثلت کا رویہ پیدا کرتی ہیں، اور پیچیدہ تاثرات تیزی سے پڑھنے کے قابل نہیں ہو جاتے ہیں۔ ایک ٹیسٹر جو ریئل ٹائم میں میچز دکھاتا ہے جیسا کہ آپ پیٹرن میں ترمیم کرتے ہیں ریجیکس کو تیار کرنے اور اس کی تصدیق کرنے کا سب سے مؤثر طریقہ ہے۔

یہ ٹیسٹر آپ کے براؤزر میں JavaScript regex انجن کا استعمال کرتے ہوئے چلتا ہے (اگر آپ کی ایپلی کیشن براؤزر میں چلتی ہے تو وہی استعمال کرتی ہے)۔ پیٹرن اور ٹیسٹ ٹیکسٹ کو رد عمل سے اپ ڈیٹ کریں: ہر تبدیلی یا تو میچ کو دوبارہ چلاتا ہے۔ میچ گروپس کو ہائی لائٹ کیا جاتا ہے، پکڑے گئے گروپس کو درج کیا جاتا ہے، اور جھنڈے (کیس سے غیر حساس، ملٹی لائن، گلوبل) کو جانچ کے لیے سامنے لایا جاتا ہے۔

ریجیکس نحو انجنوں کے درمیان ٹھیک ٹھیک مختلف ہوتا ہے۔ JavaScript ECMAScript کے مطابق ہے؛ Python، PCRE (PHP اور بہت سے دوسرے کے ذریعے استعمال کیا جاتا ہے)، Java، اور Go ہر ایک کی اپنی بولیاں اوورلیپنگ کے ساتھ ہیں لیکن ایک جیسی خصوصیات نہیں ہیں۔ یہاں تیار کردہ پیٹرن ECMAScript نحو کا استعمال کرتے ہیں؛ کراس انجن پورٹیبلٹی کے لیے ہر ہدف کی دستاویزات کی جانچ پڑتال کی ضرورت ہوتی ہے۔

ریجیکس ٹیسٹر کیوں استعمال کریں۔

ریجیکس کیڑے کو تعیناتی کے بعد ڈیبگ کرنا بدنام زمانہ مشکل ہے۔ ایک پیٹرن جو مناسب لگتا ہے وہ مطلوبہ سے زیادہ یا کم مماثل ہو سکتا ہے، کنارے کے معاملات میں ناکام ہو سکتا ہے، یا کچھ ان پٹس پر تباہ کن بیک ٹریکنگ ہو سکتا ہے۔ کوڈ کے جائزے اور پروڈکشن سے پہلے نمائندہ ان پٹ کے خلاف انٹرایکٹو ٹیسٹنگ پیٹرن مسائل کو پکڑتا ہے۔

پیٹرن بھی دستاویزات سے فائدہ اٹھاتے ہیں۔ ان پٹ کے ساتھ ریجیکس دکھانا اسے مماثل ہونا چاہئے اور جس ان پٹ سے اسے مماثل نہیں ہونا چاہئے اس سے ارادہ واضح ہوجاتا ہے۔ مستقبل کی دیکھ بھال کرنے والے (بشمول چھ مہینوں میں) دستاویزی ٹیسٹ کیسز کی اس سے زیادہ تعریف کرتے ہیں کہ وہ ہوشیار ون لائنرز کی تعریف کرتے ہیں۔

استعمال کرنے کا طریقہ

پیٹرن ٹائپ کریں، ٹیسٹ ان پٹ ٹائپ کریں، لائیو ہائی لائٹ کیے گئے میچز دیکھیں۔

  1. اپنا پیٹرن درج کریں۔: پیٹرن فیلڈ میں ریجیکس پیٹرن ٹائپ کریں۔ لغوی ریجیکس (/ پیٹرن/ جھنڈے) اور صرف پیٹرن کی شکلیں کام کرتی ہیں۔ جھنڈوں کو فلیگ ان پٹ کے ذریعے سیٹ کیا جا سکتا ہے۔
  2. ٹیسٹ ان پٹ شامل کریں۔: نمونہ کا متن چسپاں کریں جس کا پیٹرن مماثل ہونا چاہئے (اور مثالی طور پر متن بھی اس سے مماثل نہیں ہونا چاہئے)۔ ٹیسٹر ان پٹ کے خلاف پیٹرن چلاتا ہے اور میچوں کو نمایاں کرتا ہے۔
  3. جھنڈے لگائیں۔: مشترکہ جھنڈے: g (عالمی، تمام مماثلتیں تلاش کریں)، i (کیس غیر حساس)، m (ملٹی لائن، ^ اور $ میچ لائن شروع/ختم ہوتی ہے)، s (ڈاٹل، . نئی لائنوں سے ملتی ہے)، u (یونیکوڈ)۔
  4. نتائج کا معائنہ کریں۔: ان پٹ میں ہر میچ کو نمایاں کیا گیا ہے۔ کیپچر گروپس گروپ انڈیکس اور قدر کے ساتھ فہرست میں ظاہر ہوتے ہیں۔ ٹیسٹر میچوں کی گنتی اور پیٹرن میں تالیف کی غلطیوں کو بھی دکھاتا ہے۔

عام استعمال کے معاملات

تکنیکی تفصیلات

JavaScript regex ECMAScript تفصیلات کی پیروی کرتا ہے۔ اہم خصوصیات: کریکٹر کلاسز ([abc]، [^abc])، کوانٹیفائر (*, +, ?, {n,m})، الٹرنیشن (|)، گروپ بندی (...))، کیپچرنگ اور نان کیپچرنگ گروپس، آگے اور پیچھے نظر آنے والے (جدید انجن)، پیچھے کے حوالہ جات، نام والے گروپس، یونیکوڈ پراپرٹی ایسکیپز (معیاری پرچم کے ساتھ)

PCRE اور Python سے اہم فرق: lookbehind support JavaScript (2018+) میں حالیہ ہے؛ نامزد گروپ (?<name>...) نحو استعمال کرتے ہیں؛ کچھ یونیکوڈ فرار کے لیے یو فلیگ کو صحیح طریقے سے کام کرنے کی ضرورت ہوتی ہے۔ مختلف زبانوں کے استعمال کے لیے بنائے گئے نمونوں کو ہر ہدف کی دستاویزات کے خلاف چیک کیا جانا چاہیے۔

کارکردگی: بیک ٹریکنگ پر مبنی ریجیکس انجن (زیادہ تر جاوا اسکرپٹ سمیت) بعض پیتھولوجیکل پیٹرن پر تباہ کن بیک ٹریکنگ کر سکتے ہیں۔ ٹیسٹر کو لٹکانے والے ٹیسٹ اس بات کی علامت ہیں کہ پیٹرن کو آسان بنانے کی ضرورت ہے - عام طور پر نیسٹڈ کوانٹیفائرز اور مبہم ردوبدل سے گریز کرتے ہوئے۔

بہترین طرز عمل

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

یہ ٹول کس ریجیکس ذائقہ کو سپورٹ کرتا ہے؟
یہ JavaScript کے بلٹ ان RegExp انجن کا استعمال کرتا ہے، جو معیاری نحو کو سپورٹ کرتا ہے جس میں lookaheads، lookbehinds (جدید براؤزرز میں)، نام کیپچر گروپس، اور Unicode پراپرٹی Escapes شامل ہیں۔
کیا میں ریجیکس تبدیلیوں کی جانچ کر سکتا ہوں؟
جی ہاں متبادل پیٹرن داخل کرنے کے لیے ریپلیس موڈ پر جائیں۔ آپ گروپ بیک حوالہ جات کیپچر کرنے کے لیے $1، $2، وغیرہ اور نامزد گروپوں کے لیے $<name> استعمال کر سکتے ہیں۔
میرا ریجیکس یہاں Python/PHP کے مقابلے مختلف طریقے سے کیوں ملتا ہے؟
مختلف پروگرامنگ زبانوں میں قدرے مختلف ریجیکس انجن ہوتے ہیں۔ JavaScript possessive quantifiers یا کچھ PCRE مخصوص خصوصیات کو سپورٹ نہیں کرتا ہے۔ بنیادی نحو (کریکٹر کلاسز، کوانٹیفائرز، گروپس) تمام زبانوں میں یکساں ہے۔
کیا ٹول میرے ریجیکس پیٹرن کو محفوظ کرتا ہے؟
نہیں، کچھ بھی محفوظ یا منتقل نہیں ہوتا ہے۔ ٹول مکمل طور پر آپ کے براؤزر میں چلتا ہے۔ آپ ریجیکس سٹرنگ کو کاپی کر کے پیٹرن کو بک مارک یا شیئر کر سکتے ہیں۔
میں لفظی خصوصی کردار سے کیسے مماثل ہوں؟
بیک سلیش کے ساتھ اس سے بچیں۔ لغوی نقطے سے ملنے کے لیے: \. لغوی بیک سلیش سے ملنے کے لیے: \\۔ کریکٹر کلاسز کے اندر [...]، زیادہ تر خاص کردار اپنے معنی کھو دیتے ہیں۔
کیا ٹیسٹر سرور پر چل رہا ہے؟
نمبر۔ پیٹرن کی تالیف اور مماثلت آپ کے براؤزر میں مقامی RegExp آبجیکٹ کا استعمال کرتے ہوئے ہوتی ہے۔
کیا میں غیر جاوا اسکرپٹ انجنوں کے نمونوں کی جانچ کر سکتا ہوں؟
زیادہ تر سادہ نمونوں کے لیے بڑے انجن متفق ہیں۔ اعلی درجے کی خصوصیات کے لیے (پیچھے دیکھو، ایٹم گروپس، possessive quantifiers، Unicode پراپرٹی فرار)، ٹارگٹ انجن کی دستاویزات کے خلاف تصدیق کریں۔
کیا یہ بہت بڑے ان پٹ کو ہینڈل کرتا ہے؟
کچھ میگا بائٹس تک آسانی سے کام کرتا ہے۔ بڑے ان پٹس براؤزر کو سست یا لٹکا سکتے ہیں، خاص طور پر ایسے پیٹرن کے ساتھ جو بیک ٹریکنگ کا شکار ہوتے ہیں۔