विज्ञापन

रेगएक्स परीक्षक

नियमित रूप से परीक्षण और डीबग करें भाव

कोई मिलान नहीं मिला

सामान्य पैटर्न

नियमित क्या हैं भाव?

रेगुलर एक्सप्रेशन (regex या regexp) वे पैटर्न हैं जिनका उपयोग वर्ण संयोजनों से मिलान करने के लिए किया जाता है तार. वे खोजने, सत्यापन करने, निकालने आदि के लिए एक अविश्वसनीय रूप से शक्तिशाली उपकरण हैं पाठ का प्रतिस्थापन. मूल रूप से 1950 के दशक में विकसित, रेगेक्स अब लगभग सभी में समर्थित है प्रोग्रामिंग भाषा और पाठ संपादक।

यह टूल जावास्क्रिप्ट के रेगेक्स इंजन का उपयोग करता है, जो ECMAScript मानक लागू करता है। अपना परीक्षण करें अपने कोड में पैटर्न का उपयोग करने से पहले यहां देखें—सभी प्रोसेसिंग आपके ब्राउज़र में बिना किसी डेटा के होती है सर्वरों को भेजा गया।

रेगेक्स सिंटैक्स त्वरित संदर्भ

कैरेक्टर कक्षाएं

  • \d - कोई भी अंक (0-9)
  • \w - शब्द वर्ण (a-z, A-Z, 0-9, _)
  • \s - व्हाइटस्पेस (स्पेस, टैब, न्यूलाइन)
  • . - न्यूलाइन को छोड़कर कोई भी वर्ण
  • [abc] - a, b, या c में से कोई भी
  • [^abc] - a, b, या c नहीं

क्वांटिफायर

  • * - 0 या अधिक
  • + - 1 या अधिक
  • ? - 0 या 1 (वैकल्पिक)
  • {n} - बिल्कुल n गुना
  • {n,} - n या अधिक बार
  • {n,m} - n और m बार के बीच

एंकर और सीमाएँ

  • ^ - स्ट्रिंग/लाइन की शुरुआत
  • $ - स्ट्रिंग/लाइन का अंत
  • \b - शब्द सीमा
  • \B - गैर-शब्द सीमा

समूह और विकल्प

  • (abc) - कैप्चर ग्रुप
  • (?:abc) - नॉन-कैप्चर ग्रुप
  • a|b - या तो a या b
  • \1 - ग्रुप 1 का बैकरेफ़रेंस

फ़्लैग को समझना

g (वैश्विक) - Find all matches, not just the first one
i (केस को अनदेखा करें) - Case-insensitive matching (A matches a)
m (मल्टीलाइन) - ^ and $ match start/end of each line, not just the string
s (dotAll) - Makes . match newline characters too

अक्सर पूछे जाने वाले प्रश्नों

मुझे भागने की आवश्यकता क्यों है बैकस्लैश?

जावास्क्रिप्ट स्ट्रिंग्स में, बैकस्लैश एक एस्केप कैरेक्टर है। एक में शाब्दिक बैकस्लैश शामिल करने के लिए एक स्ट्रिंग से रेगेक्स पैटर्न, आपको \\की आवश्यकता है। के लिए उदाहरण के लिए, एक स्ट्रिंग में \\d \d बन जाता है रेगेक्स.

क्या अंतर है * और + के बीच?

* मिलान शून्य या अधिक घटनाएँ (किसी भी चीज़ से मेल नहीं खा सकतीं)। + पर आवश्यक है कम से कम एक घटना. उदाहरण के लिए, a* "", से मेल खाता है "ए", "आआ", जबकि केवल a+ "ए", "आआ" से मेल खाता है।

मैं शाब्दिक मिलान कैसे करूं? अवधि या ब्रैकेट?

विशेष रेगेक्स वर्णों को बैकस्लैश से बचने की आवश्यकता है। शाब्दिक अवधि से मिलान करने के लिए, \.का उपयोग करें। के लिए कोष्ठक: \[ और \]। पात्र जिन्हें भागने की आवश्यकता है: . * + ? ^ $ { } [ ] \ | ( )

मेरा पैटर्न क्यों है बहुत ज़्यादा मेल खाता है?

रेगेक्स क्वांटिफायर डिफ़ॉल्ट रूप से "लालची" होते हैं - वे जितना संभव हो उतना मेल खाते हैं। a के बाद ? जोड़ें "आलसी" मिलान के लिए क्वांटिफायर (उदाहरण के लिए, .*? के बजाय .*).

सामान्य उपयोग के मामले

  • फॉर्म सत्यापन: ईमेल, फोन को मान्य करें नंबर, यूआरएल और कस्टम प्रारूप
  • खोजें और बदलें: खोजें और बदलें संपादकों में पाठ पैटर्न और कोड
  • लॉग पार्सिंग: टाइमस्टैम्प, आईपी निकालें, और लॉग फ़ाइलों से त्रुटि कोड
  • डेटा निष्कर्षण: विशिष्ट डेटा खींचें HTML, JSON, या असंरचित पाठ से
  • इनपुट सैनिटाइजेशन: हटाएं या बच जाएं खतरनाक पात्र
विज्ञापन