TypeScript में रेगुलर एक्सप्रेशन: सिद्धांत से व्यवहार तक
\nरेगुलर एक्सप्रेशन (regexp या regex) स्ट्रिंग्स में दिए गए पैटर्न को खोजने, बदलने और जांचने के लिए एक शक्तिशाली उपकरण है। TypeScript में, JavaScript की तरह, रेगुलर एक्सप्रेशन भाषा की एक अंतर्निहित क्षमता है। यह लेख आपको सिंटैक्स में महारत हासिल करने, व्यवहार में regex लागू करने और सामान्य गलतियों से बचने में मदद करेगा।
\n\nरेगुलर एक्सप्रेशन क्या है और इसे TypeScript में कैसे बनाएं
\nरेगुलर एक्सप्रेशन वर्णों का एक क्रम है जो खोज पैटर्न का वर्णन करता है। TypeScript में रेगुलर एक्सप्रेशन बनाने के दो तरीके हैं:
\n- \n
- शाब्दिक सिंटैक्स:
/पैटर्न/फ्लैग\n - RegExp कंस्ट्रक्टर:
new RegExp('पैटर्न', 'फ्लैग')\n
पहला तरीका स्थिर पैटर्न के लिए सुविधाजनक है, दूसरा तब जब पैटर्न गतिशील रूप से बनता है।
\n// शाब्दिक सिंटैक्स\nconst emailPattern: RegExp = /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/;\n\n// RegExp कंस्ट्रक्टर\nconst dynamicPattern: string = "hello";\nconst regexFromString: RegExp = new RegExp(dynamicPattern, "gi");\n\nconsole.log(emailPattern.test("test@example.com")); // true\nconsole.log(regexFromString.test("Hello world")); // true\n\nरेगुलर एक्सप्रेशन के साथ काम करने की मुख्य विधियाँ
\nTypeScript में regex के साथ काम करने के लिए तीन प्रमुख विधियाँ उपलब्ध हैं। आइए उदाहरणों के साथ प्रत्येक पर विचार करें।
\n\ntest() विधि — अनुरूपता की जाँच
\ntrue या false लौटाता है। सत्यापन के लिए आदर्श।
const hasNumber: RegExp = /\\d+/;\nconsole.log(hasNumber.test("abc123")); // true\nconsole.log(hasNumber.test("abc")); // false\n\nexec() विधि — विवरण के साथ खोज
\nमिलान और अतिरिक्त जानकारी (इंडेक्स, मूल स्ट्रिंग) के साथ एक ऐरे लौटाता है। g फ्लैग का उपयोग करने पर अंतिम मिलान की स्थिति याद रखता है।
const wordPattern: RegExp = /(\\w+)\\s(\\w+)/;\nconst result = wordPattern.exec("Hello TypeScript");\nif (result) {\n console.log(`पूर्ण मिलान: ${result[0]}`); // Hello TypeScript\n console.log(`पहला समूह: ${result[1]}`); // Hello\n console.log(`दूसरा समूह: ${result[2]}`); // TypeScript\n console.log(`इंडेक्स: ${result.index}`); // 0\n}\n\nmatch() विधि — सभी मिलान खोजें
\nरेगुलर एक्सप्रेशन पर नहीं, बल्कि स्ट्रिंग पर कॉल किया जाता है। g फ्लैग के साथ सभी मिलानों की एक ऐरे लौटाता है।
const text: string = "मूल्य: 100 रुपये, छूट: 20 रुपये";\nconst prices: RegExp = /\\d+/g;\nconst foundPrices: string[] | null = text.match(prices);\nconsole.log(foundPrices); // ['100', '20', '0']\n\nसिंटैक्स और अक्सर उपयोग किए जाने वाले वर्ण
\nप्रभावी रेगुलर एक्सप्रेशन लिखने के लिए, आपको मूल वर्णों और उनके अर्थों को जानना होगा।
\n- \n
.— नई पंक्ति को छोड़कर कोई भी वर्ण \n \\d— अंक ([0-9]के समतुल्य) \n \\w— अक्षर, अंक या अंडरस्कोर ([a-zA-Z0-9_]) \n \\s— कोई भी स्पेस वर्ण (स्पेस, टैब, नई पंक्ति) \n ^— स्ट्रिंग की शुरुआत \n $— स्ट्रिंग का अंत \n *— 0 या अधिक दोहराव \n +— 1 या अधिक दोहराव \n ?— 0 या 1 दोहराव (क्वांटिफायर को आलसी बनाता है) \n []— वर्णों का सेट (उदाहरण,[a-z]— सभी छोटे अक्षर) \n ()— कैप्चर समूह \n |— तार्किक OR \n
// वर्णों के उपयोग के उदाहरण\nconst phonePattern: RegExp = /^\\+?7?\\d{10}$/;\nconsole.log(phonePattern.test("+79161234567")); // true\n\nconst datePattern: RegExp = /^\\d{2}\\.\\d{2}\\.\\d{4}$/;\nconsole.log(datePattern.test("31.12.2023")); // true\