रेगेक्स टेस्टर
g/i/m/s/u/y फ़्लैग, मिलान गणना, कैप्चर और नामित समूह, लाइन-कॉलम श्रेणियां और मूल प्रतिस्थापन पूर्वावलोकन के साथ स्थानीय रूप सेJavaScript नियमित अभिव्यक्तियों का परीक्षण करें।
/
/g
परीक्षण पाठ
अक्षर
0 / 50,000
मिलान परिणाम
मिलान शुरू करने के लिए एक पैटर्न दर्ज करें
प्रतिस्थापन टेक्स्ट
अक्षर
0 / 50,000
प्रतिस्थापन पूर्वावलोकन
क्विक स्टार्ट
सामान्य उपयोग के मामले
डेटा निकालना
तारीख निकालने के लिए (\d{4}-\d{2}-\d{2}) और ईमेल पते निकालने के लिए ([\w.]+@[\w.]+) का उपयोग करें
फ़ॉर्मैट सत्यापन
regex लिखें, कई नमूने चिपकाएँ, और जल्दी जाँचें कि पैटर्न लक्ष्य फ़ॉर्मैट से ठीक मेल खाता है या नहीं
बैच रिप्लेसमेंट
capture groups से सामग्री को फिर से व्यवस्थित करें। उदाहरण के लिए, "नाम उपनाम" को "उपनाम, नाम" में बदलने के लिए पैटर्न (\S+)\s+(\S+) और replacement $2, $1 का उपयोग करें
नामित समूह
तारीखें निकालने के लिए (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) का उपयोग करें, फिर उन्हें फिर से बनाने के लिए $<year>/$<month>/$<day> का उपयोग करें
Regex सीखना
अलग-अलग patterns आज़माएँ और matching behavior को देखकर quantifiers, anchors और character classes को दृश्य रूप से समझें
मल्टीलाइन हैंडलिंग
m फ़्लैग चालू करें ताकि ^ और $ हर लाइन के हिसाब से match करें; यह logs, code और configuration files के लिए उपयोगी है
उपयोग टिप्स
सीमाएं और संगतता
गोपनीयता और सुरक्षा
अक्सर पूछे जाने वाले प्रश्न
रेगुलर एक्सप्रेशन (रेगेक्स) पाठ संरचनाओं का वर्णन करने के लिए एक पैटर्न भाषा है। इसे "उन्नत खोज" के रूप में सोचें - एक निश्चित शब्द की खोज करने के बजाय, आप एक नियम से मेल खाने वाली हर चीज की खोज करते हैं। \n\nउदाहरण के लिए, \\d{4}-\\d{2}-\\d{2} YYYY-MM-DD प्रारूप में सभी तिथियों से मेल खाता है, और [\\w.]+@[\\w.]+ ईमेल पते से मेल खाता है। रेगेक्स का व्यापक रूप से उपयोग किया जाता है: पाठ खोज और निष्कर्षण (लॉग में त्रुटि कोड ढूंढना), प्रारूप सत्यापन (फोन नंबर की जांच करना), और बैच प्रतिस्थापन (दिनांक प्रारूप परिवर्तित करना)। \n\nलगभग हर प्रोग्रामिंग भाषा (जावास्क्रिप्ट, पायथन, जावा, गो, आदि) और कई टूल (वीएस कोड, ग्रेप, सेड) ज्यादातर समान वाक्यविन्यास के साथ रेगेक्स का समर्थन करते हैं। यह टूल त्वरित ऑनलाइन परीक्षण और सीखने के लिए जावास्क्रिप्ट रेगएक्सपी इंजन का उपयोग करता है।
जावास्क्रिप्ट रेगेक्स डिफ़ॉल्ट रूप से केवल पहला मैच लौटाता है - यह एक भाषा विनिर्देश व्यवहार है, उपकरण सीमा नहीं। वैश्विक खोज को सक्षम करने और सभी मैचों को देखने के लिए फ़्लैग बार में g बटन पर क्लिक करें। \n\ng और y के बीच की बातचीत पर ध्यान दें: g पूरे टेक्स्ट को शुरू से अंत तक स्कैन करता है, जबकि y (चिपचिपा) के लिए प्रत्येक मैच को ठीक उसी स्थान पर शुरू करने की आवश्यकता होती है जहां पिछला समाप्त हुआ था - यदि मैचों के बीच अंतराल वर्ण हैं, तो y पहले अंतराल पर रुक जाता है। आमतौर पर बिना y के g को सक्षम करना ही पर्याप्त होता है।
आम तौर पर चार कारण होते हैं: 1. ब्रैकेट पूरे नहीं हैं: हर ( के लिए ) और हर [ के लिए ] चाहिए। IDE कभी-कभी इन्हें अपने-आप जोड़ देता है, लेकिन यह टूल वही pattern जांचता है जो आपने लिखा है। 2. quantifier गलत जगह है: *, +, ?, {n} किसी दोहराए जा सकने वाले हिस्से के बाद आने चाहिए। *+ या ?* मान्य नहीं हैं; lazy quantifier के लिए *? या +? लिखें। 3. escape अधूरा है: pattern के अंत में अकेला \ अमान्य है; उसे किसी खास अक्षर को escape करना चाहिए, जैसे \d, \n या \\. 4. Unicode property के लिए u flag नहीं है: \p{L}, \p{Script=Han} जैसे property escape इस टूल में u flag मांगते हैं।
ये JavaScript String.prototype.replace() में इस्तेमाल होने वाले replacement references हैं: - $1, $2, ..., $99: संबंधित capture group की सामग्री। - $&: पूरा matched text। - $`: match से पहले का text। - $': match के बाद का text। - $<name>: named capture group (?<name>...) की सामग्री। उदाहरण: (\w+)\s(\w+) अगर “hello world” से match करे, तो $2-$1 replacement से “world-hello” मिलेगा। Replacement text में असली $ डालना हो तो $$ लिखें।
हर language का regex engine थोड़ा अलग हो सकता है। मुख्य अंतर तीन हैं: 1. Syntax support: JavaScript PCRE recursion (?R), conditional branches (?(cond)yes|no), और atomic groups (?>...) support नहीं करता। Python का re module भी इन्हें support नहीं करता, जबकि अलग regex module कुछ support करता है। Java atomic groups support करता है, recursion नहीं। 2. Unicode handling: JavaScript में \w मुख्य रूप से basic Latin letters, digits और underscore से match करता है। u flag लगाने से यह अपने-आप Chinese characters से match नहीं करता। Unicode letters के लिए \p{L} जैसे property escapes u flag के साथ इस्तेमाल करें। 3. Newline behavior: Python में . default रूप से \n से match नहीं करता, JavaScript की तरह। Java का Pattern.DOTALL, JavaScript के s flag जैसा व्यवहार करता है। इस टूल से JavaScript RegExp जल्दी जाँचें, फिर target language के actual engine में अंतिम पुष्टि करें।