रेगुलर एक्सप्रेशन क्या है?

एक रेगुलर एक्सप्रेशन (regex) वर्णों का एक क्रम है जो एक खोज पैटर्न को परिभाषित करता है। मूल रूप से औपचारिक भाषा सिद्धांत के लिए विकसित, रेगुलर एक्सप्रेशन अब लगभग हर प्रोग्रामिंग भाषा और टेक्स्ट-प्रोसेसिंग टूल में string को मिलाने, खोजने और संशोधित करने के लिए उपयोग किए जाते हैं। [a-z]+@[a-z]+\.com जैसा एक पैटर्न एक साधारण ईमेल पते की संरचना का वर्णन करता है — अक्षर, उसके बाद एक @ प्रतीक, और अधिक अक्षर, एक डॉट, और literal string "com।"

खोज से परे, रेगुलर एक्सप्रेशन डेटा उत्पन्न करने के लिए ब्लूप्रिंट के रूप में भी काम कर सकते हैं। मिलान प्रक्रिया को उलटकर, एक regex इंजन यादृच्छिक string उत्पन्न कर सकता है जो किसी दिए गए पैटर्न के अनुरूप हों। यह सॉफ़्टवेयर परीक्षण, प्रोटोटाइपिंग, और वास्तविक उपयोगकर्ता जानकारी पर निर्भर हुए बिना डेटाबेस को यथार्थवादी दिखने वाले mock डेटा से भरने के लिए विशेष रूप से उपयोगी है।

टूल का विवरण

यह टूल यादृच्छिक string उत्पन्न करता है जो आपके द्वारा प्रदान किए गए किसी भी रेगुलर एक्सप्रेशन से मेल खाती हैं। एक regex पैटर्न दर्ज करें — या अंतर्निहित presets में से चुनें — और तुरंत 1,000 तक मिलान करने वाले मान उत्पन्न करें। यह character classes, quantifiers, groups, alternation और backreferences सहित सभी मानक regex syntax का समर्थन करता है। आउटपुट को सीधे test fixtures, seed डेटा, या validation scripts के इनपुट के रूप में उपयोग किया जा सकता है।

विशेषताएँ

  • सामान्य प्रारूपों के लिए अंतर्निहित presets: ईमेल, IPv4, UUID, US फ़ोन नंबर, दिनांक, hex रंग, लाइसेंस प्लेट, और MAC पता
  • कस्टम regex इनपुट जो पूर्ण JavaScript रेगुलर एक्सप्रेशन syntax को स्वीकार करता है
  • प्रति रन 1 से 1,000 उत्पन्न मानों तक समायोज्य संख्या
  • अधिकतम पुनरावृत्ति नियंत्रण जो यह सीमित करता है कि असीमित quantifiers (+, *, {n,}) कितनी बार विस्तारित होते हैं, अत्यधिक लंबी string को रोकने के लिए
  • केवल अद्वितीय मोड जो आउटपुट को डुप्लीकेट-मुक्त करता है और चेतावनी देता है यदि पैटर्न की entropy पर्याप्त अलग-अलग मान उत्पन्न करने के लिए बहुत कम है

उपयोग के मामले

  • सॉफ़्टवेयर परीक्षण: वास्तविक उपयोगकर्ता जानकारी उजागर किए बिना स्वचालित test suites के लिए test fixtures या seed डेटा के रूप में उपयोग करने हेतु सैकड़ों वैध दिखने वाले ईमेल पते, UUID, या IP पते उत्पन्न करें।
  • डेटाबेस seeding: कॉलम बाधाओं और validation नियमों के अनुरूप यथार्थवादी mock डेटा के साथ विकास या staging डेटाबेस को तुरंत भरें।
  • Regex सीखना: एक पैटर्न लिखकर और तुरंत देखकर कि यह कौन सी string उत्पन्न कर सकता है, रेगुलर एक्सप्रेशन syntax के साथ प्रयोग करें, जिससे quantifiers, character classes और grouping को समझना आसान हो जाता है।

विकल्पों की व्याख्या

विकल्प विवरण
Preset सामान्य डेटा प्रारूपों के लिए एक अंतर्निहित पैटर्न चुनें, या अपना स्वयं का regex लिखने के लिए "Custom" चुनें। Preset चुनने से regex पैटर्न फ़ील्ड स्वतः भर जाती है।
Regex पैटर्न डेटा उत्पन्न करने के लिए उपयोग किया जाने वाला रेगुलर एक्सप्रेशन। Character classes ([a-z]), quantifiers ({3,8}, +, *), groups और alternation ((com|net|org)), और special tokens (\d, \w) का समर्थन करता है।
संख्या कितनी string उत्पन्न करनी हैं, 1 और 1,000 के बीच।
अधिकतम पुनरावृत्ति असीमित quantifiers के विस्तार को सीमित करता है। उदाहरण के लिए, अधिकतम पुनरावृत्ति 10 पर सेट होने पर, पैटर्न [a-z]+ अधिकतम 10 वर्णों की string उत्पन्न करेगा। रेंज: 1–100।
केवल अद्वितीय मान सक्षम होने पर, सुनिश्चित करता है कि आउटपुट में कोई डुप्लीकेट string न हो। यदि पैटर्न पर्याप्त अद्वितीय मान उत्पन्न नहीं कर सकता, तो वास्तविक उत्पन्न संख्या के साथ एक चेतावनी दिखाई जाती है।

सुझाव

  • यह जानने के लिए कि regex पैटर्न उत्पन्न डेटा में कैसे परिवर्तित होते हैं, एक preset से शुरू करें और उसे संशोधित करें।
  • यदि आपको निश्चित-लंबाई का आउटपुट चाहिए, तो {5,10} जैसी रेंज के बजाय {8} जैसे सटीक quantifiers का उपयोग करें।
  • उत्पन्न string को छोटा और पठनीय रखने के लिए + या * का उपयोग करते समय अधिकतम पुनरावृत्ति मान कम करें।
  • पहचानकर्ता या keys उत्पन्न करते समय unique मोड सक्षम करें जो दोहराई नहीं जानी चाहिए, लेकिन अद्वितीयता की सीमा से बचने के लिए पर्याप्त भिन्नता वाले पैटर्न का उपयोग करें।

सामान्य प्रश्न

क्या मैं lookaheads या lookbehinds का उपयोग कर सकता हूँ? यह generator randexp.js लाइब्रेरी पर आधारित है, जो अधिकांश JavaScript regex सुविधाओं का समर्थन करती है। Lookaheads और lookbehinds को generation के लिए समर्थित नहीं किया जाता क्योंकि वे वर्ण सामग्री को परिभाषित नहीं करते।

मुझे अनुरोध से कम परिणाम क्यों मिले? "केवल अद्वितीय मान" सक्षम होने पर, पैटर्न में अनुरोधित संख्या में अलग-अलग string उत्पन्न करने के लिए पर्याप्त संभावित permutations नहीं हो सकते। character classes को व्यापक बनाने या quantifier रेंज बढ़ाने का प्रयास करें।

क्या आउटपुट वास्तव में यादृच्छिक है? आउटपुट pseudo-random है। प्रत्येक रन अलग-अलग परिणाम उत्पन्न करता है, लेकिन यादृच्छिकता cryptographically सुरक्षित नहीं है। पासवर्ड या सुरक्षा token उत्पन्न करने के लिए इस टूल का उपयोग न करें।