रेगेक्स टेस्टर
रेगेक्स टेस्टर
रेगेक्स परीक्षक: रियल-टाइम मैचिंग, फ़्लैग कंट्रोल, कैप्चर ग्रुप, नेम्ड ग्रुप और तुरंत रिप्लेसमेंट प्रीव्यू के साथ रेगुलर एक्सप्रेशन टेस्ट करें। परफ़ॉर्मेंस रिस्क डिटेक्शन और टाइमआउट प्रोटेक्शन शामिल — पैटर्न वैलिडेशन, टेक्स्ट एक्सट्रैक्शन और बैच रिप्लेसमेंट के लिए आदर्श। यह पूरा काम ब्राउज़र में लोकली होता है।
/
/g
सभी खोजें
अक्षर आकार अनदेखा
बहु-पंक्ति
डॉट में नई पंक्ति शामिल
यूनिकोड मोड
वर्तमान स्थान से मैच
परीक्षण पाठ
प्रतिस्थापन टेक्स्ट
मिलान परिणाम
मिलान शुरू करने के लिए एक पैटर्न दर्ज करें
प्रतिस्थापन पूर्वावलोकन
क्विक स्टार्ट
सामान्य उपयोग के मामले
लॉग और टेक्स्ट से आईडी, ईमेल, दिनांक या कस्टम टोकन निकालें। तैयारी पूरी होने पर परिणाम को तुरंत कॉपी, डाउनलोड या एक्सपोर्ट किया जा सकता है।
कोड में एकीकृत करने से पहले उपयोगकर्ता इनपुट प्रारूपों को सत्यापित करें। तैयारी पूरी होने पर परिणाम को तुरंत कॉपी, डाउनलोड या एक्सपोर्ट किया जा सकता है।
बैच कैप्चर समूहों और नामित समूहों का उपयोग करके सामग्री को प्रतिस्थापित करता है। तैयारी पूरी होने पर परिणाम को तुरंत कॉपी, डाउनलोड या एक्सपोर्ट किया जा सकता है।
उपयोग टिप्स
सीमाएं और संगतता
गोपनीयता और सुरक्षा
अक्सर पूछे जाने वाले प्रश्न
रेगुलर एक्सप्रेशन (रेगेक्स) पाठ संरचनाओं का वर्णन करने के लिए एक पैटर्न भाषा है। इसे "उन्नत खोज" के रूप में सोचें - एक निश्चित शब्द की खोज करने के बजाय, आप एक नियम से मेल खाने वाली हर चीज की खोज करते हैं। \n\nउदाहरण के लिए, \\d{4}-\\d{2}-\\d{2} YYYY-MM-DD प्रारूप में सभी तिथियों से मेल खाता है, और [\\w.]+@[\\w.]+ ईमेल पते से मेल खाता है। रेगेक्स का व्यापक रूप से उपयोग किया जाता है: पाठ खोज और निष्कर्षण (लॉग में त्रुटि कोड ढूंढना), प्रारूप सत्यापन (फोन नंबर की जांच करना), और बैच प्रतिस्थापन (दिनांक प्रारूप परिवर्तित करना)। \n\nलगभग हर प्रोग्रामिंग भाषा (जावास्क्रिप्ट, पायथन, जावा, गो, आदि) और कई टूल (वीएस कोड, ग्रेप, सेड) ज्यादातर समान वाक्यविन्यास के साथ रेगेक्स का समर्थन करते हैं। यह टूल त्वरित ऑनलाइन परीक्षण और सीखने के लिए जावास्क्रिप्ट रेगएक्सपी इंजन का उपयोग करता है।
जावास्क्रिप्ट रेगेक्स डिफ़ॉल्ट रूप से केवल पहला मैच लौटाता है - यह एक भाषा विनिर्देश व्यवहार है, उपकरण सीमा नहीं। वैश्विक खोज को सक्षम करने और सभी मैचों को देखने के लिए फ़्लैग बार में g बटन पर क्लिक करें। \n\ng और y के बीच की बातचीत पर ध्यान दें: g पूरे टेक्स्ट को शुरू से अंत तक स्कैन करता है, जबकि y (चिपचिपा) के लिए प्रत्येक मैच को ठीक उसी स्थान पर शुरू करने की आवश्यकता होती है जहां पिछला समाप्त हुआ था - यदि मैचों के बीच अंतराल वर्ण हैं, तो y पहले अंतराल पर रुक जाता है। आमतौर पर बिना y के g को सक्षम करना ही पर्याप्त होता है।
चार सामान्य कारण हैं:\n\n1. बेजोड़ कोष्ठक: प्रत्येक (एक मिलान होना चाहिए), प्रत्येक [एक मिलान होना चाहिए]। आईडीई इन्हें स्वतः पूर्ण कर सकते हैं, लेकिन इस टूल के लिए मैन्युअल युग्मन की आवश्यकता होती है।\n2। गलत स्थान पर रखे गए परिमाणक: परिमाणक (*, +, ?, {n}) को एक मात्रात्मक तत्व का पालन करना चाहिए। *+ या ?* जैसे संयोजन अवैध हैं, जब तक कि पहला परिमाणक ? न हो। आलसी संशोधन के लिए (जैसे *?).\n3. अपूर्ण पलायन: अंत में एक अकेला \\ अवैध है - इसे एक विशिष्ट वर्ण से बचना चाहिए (जैसे \\d, \\n, \\\\).\n4. यूनिकोड संपत्तियों को यू ध्वज की आवश्यकता होती है: \\p{L}, \\p{Script=Han} और समान यूनिकोड संपत्ति यू ध्वज सक्षम किए बिना त्रुटियों से बच जाती है। इसे सक्षम करने के लिए यू बटन पर क्लिक करें।
ये जावास्क्रिप्ट के String.prototype.replace():\n\n- $1, $2, ..., $99 द्वारा परिभाषित प्रतिस्थापन संदर्भ टोकन हैं: nth कैप्चर ग्रुप द्वारा कैप्चर की गई सामग्री को संदर्भित करें (...)\n- $&: संपूर्ण मिलान किया गया टेक्स्ट\n- $`: से पहले का टेक्स्ट मैच\n- $': मैच के बाद का पाठ\n- ${name}: नामित समूह (?<name>...)\n\n द्वारा कैप्चर की गई सामग्री, उदाहरण के लिए, पैटर्न (\\w+)\\s(\\w+) प्रतिस्थापन के साथ "हैलो वर्ल्ड" से मेल खाता है $2-$1 "वर्ल्ड-हैलो" उत्पन्न करता है। प्रतिस्थापन में शाब्दिक $ शामिल करने के लिए, इससे बचने के लिए $$ का उपयोग करें।
टाइमआउट लगभग हमेशा "विनाशकारी बैकट्रैकिंग" के कारण होता है। जब रेगेक्स इंजन नेस्टेड क्वांटिफायर (जैसे (ए+)+बी) या ओवरलैपिंग वैकल्पिक पथों का सामना करता है, तो यह संयोजनों की एक घातीय संख्या के माध्यम से पीछे हट जाता है, जिससे मैच का समय विस्फोट हो जाता है।\n\nविशिष्ट खतरनाक पैटर्न: (ए+)+, (.*?)*, (.+)+$ आदि। समाधान:\n1. प्रतिस्थापित करें । सटीक चरित्र वर्गों के साथ, उदा. [^\\s]+ के बजाय .+\n2. नेस्टेड क्वांटिफायर से बचें - (a+)+ को a+\n3 में बदलें। ओवरलैपिंग वैकल्पिक पथों को कम करें - (a|ab)+ को a+b में बदलें?\n\nपैटर्न को समायोजित करने के बाद, मिलान परिणाम क्षेत्र में "पुनः प्रयास करें" बटन पर क्लिक करें। टूल में 4-सेकंड की टाइमआउट सुरक्षा है और यह आपके ब्राउज़र को फ़्रीज़ नहीं करेगा।
विभिन्न भाषाओं में तीन मुख्य क्षेत्रों में रेगेक्स इंजन अंतर होता है:\n\n1। सिंटैक्स समर्थन भिन्न होता है: जावास्क्रिप्ट पीसीआरई पुनरावर्ती पैटर्न (?R), सशर्त शाखाओं (?(cond)yes|no), या परमाणु समूहों (?>...) का समर्थन नहीं करता है। पायथन के री मॉड्यूल में भी इनका अभाव है, लेकिन इसका रेगेक्स मॉड्यूल उनका समर्थन करता है। जावा परमाणु समूहों का समर्थन करता है लेकिन रिकर्सन का नहीं।\n2। यूनिकोड प्रबंधन अलग है: पायथन 3 डिफ़ॉल्ट रूप से \\w, \\d को यूनिकोड के रूप में संसाधित करता है; जावास्क्रिप्ट डिफ़ॉल्ट रूप से ASCII का उपयोग करता है - आपको यू ध्वज को मैन्युअल रूप से सक्षम करना होगा। इसका मतलब है कि \\w चीनी अक्षरों से मेल नहीं खाएगा और \\b शब्द सीमाएँ CJK अक्षरों के बीच लागू नहीं होंगी।\n3। न्यूलाइन शब्दार्थ अलग-अलग हैं: पायथन का। डिफ़ॉल्ट रूप से \\n से मेल नहीं खाता (जावास्क्रिप्ट के समान), जबकि जावा का पैटर्न.DOTALL जावास्क्रिप्ट के ध्वज के समान व्यवहार करता है।\n\nसिफारिश: त्वरित तर्क सत्यापन के लिए इस उपकरण का उपयोग करें, फिर अपनी लक्ष्य भाषा के इंजन के साथ अंतिम पुष्टि करें।