हिन्दी

टेक्स्ट और रोजमर्रा के टूल · टेक्स्ट टूलकिट

शाब्दिक या रेगेक्स? आपके खोज शब्द में एक बिंदु प्रत्येक परिणाम को क्यों बदल सकता है?

· यह क्यों मायने रखती है

ढूँढें और बदलें रेगुलर-एक्सप्रेशन पाठ संपादन

अलग-अलग शाब्दिक और नियमित अभिव्यक्ति खोज पथ लेने वाली एक बिंदीदार संस्करण संख्या
मूल ToolAcre वेक्टर चित्रण

बताता है कि कौन से अक्षर नियमित अभिव्यक्ति में अर्थ रखते हैं, जब 'a.b' या 'v1.2 (बीटा)' को एक पैटर्न के रूप में माना जाता है तो क्या गलत होता है, और क्यों एक शाब्दिक मोड जो सब कुछ से बच जाता है वह डिफ़ॉल्ट होना चाहिए।

'v1.2' की खोज करना और 'v102' का मिलान करना - कैसे एक रेगेक्स-फर्स्ट टूल चुपचाप विराम चिह्नों को वाइल्डकार्ड में बदल देता है

रिलीज़ नोट्स में `v1.2` को बदलने वाला एक सपोर्ट एजेंट उचित रूप से उन चार वर्णों से एक संस्करण लेबल की पहचान करने की अपेक्षा कर सकता है। हालाँकि, रेगेक्स सक्षम होने पर, बिंदु का मतलब लाइन ब्रेक को छोड़कर कोई भी वर्ण है। इसलिए पैटर्न `v102`, `v1-2` या `v1x2` से मेल खा सकता है, और सभी को बदलें उन प्रविष्टियों को बदल सकता है जो कभी भी अनुरोधित रिलीज़ का हिस्सा नहीं थीं।

यह विफलता शांत है क्योंकि पैटर्न वैध है। जानबूझकर वाइल्डकार्ड को फ़ाइल नाम से कॉपी किए गए विराम चिह्न से अलग करने के लिए कोई त्रुटि संदेश नहीं है। पहली चेतावनी अप्रत्याशित रूप से बड़ी प्रतिस्थापन संख्या हो सकती है। जब कार्य ज्ञात पाठ को सटीक रूप से बदलना है, तो विराम चिह्न डेटा होना चाहिए, न कि खोज इंजन के लिए एक निर्देश।

मेटाअक्षर - बिंदु, कोष्ठक, कोष्ठक, प्लस, स्टार, प्रश्न चिह्न, पाइप, कैरेट, डॉलर और बैकस्लैश, और प्रत्येक क्या करता है

JavaScript रेगेक्स मोड में, एक बिंदु एक वाइल्डकार्ड है; वर्गाकार कोष्ठक एक वर्ण वर्ग को परिभाषित करते हैं; कोष्ठक एक समूह बनाते हैं; प्लस, स्टार और प्रश्न चिह्न नियंत्रण दोहराव; और एक पाइप विकल्प प्रदान करता है। कैरेट और डॉलर चिह्न इस टूल में पूरे टेक्स्ट के प्रारंभ या अंत में पैटर्न को एंकर करते हैं, क्योंकि मल्टीलाइन मोड सक्षम नहीं है।

बैकस्लैश निम्नलिखित वर्ण को पढ़ने के तरीके को बदल देता है, और ब्रेसिज़ पुनरावृत्ति गणना को व्यक्त कर सकते हैं। ये प्रतीक केवल उन स्थितियों में मायने रखते हैं जहां रेगेक्स व्याकरण उन्हें विशेष रूप से मानता है, इसलिए किसी सूची को याद रखना यह तय करने से कम विश्वसनीय है कि नौकरी को किस मोड की आवश्यकता है। यदि आप दिए गए लेबल, पथ खंड या फ़ाइल नाम का मिलान कर रहे हैं, तो शाब्दिक रूप से शुरू करें।

मेटाअक्षर जो JavaScript रेगेक्स मोड में मायने रखते हैं

शाब्दिक मोड खोज का मतलब वही बनाता है जो टाइप किया गया था। ToolAcre खोज को संकलित करने से पहले रेगुलर-एक्सप्रेशन मेटाकैरेक्टर से बच जाता है, इसलिए `v1.2 (beta)` बिंदु, स्थान और कोष्ठक से स्वयं मेल खाता है। यह वाक्यांश को कैप्चर समूह द्वारा अनुसरण किए जाने वाले वाइल्डकार्ड में नहीं बदलता है, और यह अभी भी पाठ में हर सटीक घटना को ढूंढता है।

वह पलायन केवल खोज पक्ष पर ही घटित होता है। प्रतिस्थापन फ़ील्ड अभी भी JavaScript प्रतिस्थापन-स्ट्रिंग नियमों का पालन करता है, जहां `$&` मिलान किए गए टेक्स्ट को सम्मिलित करता है और `$$` एक डॉलर चिह्न उत्पन्न करता है। इसलिए पाठ की पहचान के लिए शाब्दिक खोज सुरक्षित डिफ़ॉल्ट है, लेकिन डॉलर चिह्नों वाला प्रतिस्थापन अभी भी सभी को बदलें चयनित होने से पहले एक जानबूझकर समीक्षा के योग्य है।

रेगेक्स मोड - जब आप शक्ति चाहते हैं, और व्यक्तिगत पात्रों से स्वयं कैसे बचें

रेगेक्स मोड तब उपयोगी होता है जब कई फॉर्म एक नियम से मेल खाने चाहिए। एक पैटर्न प्रत्येक स्रोत वर्तनी को सूचीबद्ध किए बिना अंकों की एक श्रृंखला, वैकल्पिक विराम चिह्न या विकल्पों को लक्षित कर सकता है। रेगेक्स को केवल तभी चालू करें जब वह परिवर्तनशीलता जानबूझकर हो, फिर बैकस्लैश के साथ एक विशेष वर्ण से बचें जब उसे अपना सामान्य अर्थ बनाए रखना होगा, जैसे कि एक बिंदु के लिए `.`।

टूल पैटर्न को JavaScript रेगेक्स सिंटैक्स के साथ संकलित करता है और इसे हमेशा विश्व स्तर पर लागू करता है। केस सेंसिटिव को साफ़ करने से केस-असंवेदनशील मिलान जुड़ जाता है, लेकिन मल्टीलाइन, डॉट-ऑल, स्टिकी और यूनिकोड फ़्लैग पेश नहीं किए जाते हैं। पाठ को बदले बिना अमान्य वाक्यविन्यास की सूचना दी जाती है। एक वैध लेकिन अत्यधिक व्यापक पैटर्न अभी भी चलता है, इसलिए संकलन की सफलता एक सुरक्षित मिलान सेट का प्रमाण नहीं है।

कारगर उदाहरण - सभी रिलीज़ नोट्स में 'config.yml (पुराना)' को शाब्दिक मोड में बदलना, फिर अंतर देखने के लिए रेगेक्स मोड में उसी का प्रयास करना

`Load config.yml (old)`, `Archive configXyml old` और `Keep config.yml (new)` वाले रिलीज़ नोट्स पर विचार करें। रेगेक्स बंद होने पर, `config.yml (old)` खोजें और इसे `config.yml (legacy)` से बदलें। बिल्कुल पहला वाक्यांश बदल जाता है क्योंकि पैटर्न संकलित होने से पहले बिंदु और कोष्ठक बच जाते हैं।

रेगेक्स चालू करें और वही अनएस्केप्ड खोज सबमिट करें। बिंदु किसी अन्य वर्ण का उपभोग कर सकता है, जबकि कोष्ठक शाब्दिक कोष्ठक से मेल खाने के बजाय `old` समूह बनाते हैं, इसलिए इच्छित पंक्ति अब लिखित रूप से मेल नहीं खाती है। एक रेगेक्स समतुल्य को `config.yml (old)` की आवश्यकता होती है। शाब्दिक संस्करण इस सटीक-पाठ कार्य के साथ छोटा, स्पष्ट और बेहतर ढंग से संरेखित है।

सामान्य गलतियाँ - खोज बॉक्स में रिक्त स्थान पीछे जाना, संपूर्ण शब्द और शाब्दिक को मिलाना, और प्रतिस्थापन गिनती की जाँच को भूल जाना

अनुगामी स्थानों को नज़रअंदाज़ करना आसान है क्योंकि खोज फ़ील्ड उन्हें थोड़ा दृश्य महत्व देता है, फिर भी शाब्दिक मोड उन्हें संरक्षित करता है। `beta ` की खोज पंक्ति के अंत में `beta` से मेल नहीं खाएगी। जब कोई स्पष्ट रूप से दिखाई देने वाला शब्द शून्य प्रतिस्थापन की रिपोर्ट करता है, तो फ़ील्ड सीमाओं की जाँच करें, और आसपास के गद्य से कॉपी किए गए पाठ को अलग करने के लिए रिक्त स्थान जोड़ने से बचें।

संपूर्ण शब्द शाब्दिक का दूसरा नाम नहीं है। यह संकलित खोज को शब्द सीमाओं में लपेटता है, जो यहां ASCII-आधारित हैं और विराम चिह्न या उच्चारण शब्दों के आसपास विफल हो सकते हैं। प्रत्येक रन के बाद प्रतिस्थापन गणना का भी निरीक्षण करें और आश्चर्यजनक होने पर पूर्ववत करें का उपयोग करें। गिनती दायरे के बारे में सबूत है, सजावटी सफलता का संदेश नहीं।

सामान्य गलतियाँ: रिक्त स्थान, संपूर्ण शब्द सीमाएँ और प्रतिस्थापन वाक्यविन्यास

यह पेज रेगुलर-एक्सप्रेशन फ़्लैग के लिए पूर्ण गाइड का प्रयास नहीं करता है। ToolAcre वैश्विक मिलान और वैकल्पिक रूप से केस-असंवेदनशील मिलान का उपयोग करता है, जबकि एंकर अभी भी प्रत्येक पंक्ति के बजाय पूर्ण पाठ को संदर्भित करता है। इनलाइन फ़्लैग, POSIX क्लास या भिन्न सिंटैक्स वाले इंजनों से कॉपी किए गए पैटर्न संकलित होने में विफल हो सकते हैं या ब्राउज़र में इसका कुछ और मतलब हो सकता है।

कैप्चर समूह समर्थित हैं, इसलिए यह कहने के बजाय कि वे टूल से बाहर हैं, रूपरेखा में सुधार की आवश्यकता है। रेगेक्स मोड में, समूहों को प्रतिस्थापन में `$1`, `$2` और बाद की संख्याओं के साथ संदर्भित किया जा सकता है। वह क्षमता शाब्दिक खोज और सीमित ध्वज नियंत्रण से अलग है; इसका उपयोग केवल तभी करें जब मिलान किए गए पाठ का पुनर्गठन वास्तविक लक्ष्य हो।

यहां झंडे सीमित हैं, जबकि प्रतिस्थापन में कैप्चर समूहों का समर्थन किया जाता है

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

संपादित रिलीज़ नोट्स करने से पहले, रिपोर्ट की गई संख्या की तुलना आपके द्वारा अपेक्षित परिवर्तनों की संख्या से करें और परिणाम का निरीक्षण करें। ToolAcre अमान्य पैटर्न को अछूता छोड़ देता है और बहुत दूर तक पहुंच चुके वैध पैटर्न को पूर्ववत करने की सुविधा प्रदान करता है। वे सुरक्षा उपाय मदद करते हैं, लेकिन शाब्दिक कार्य के लिए शाब्दिक मोड चुनने से व्यापक मिलान होने से पहले ही रुक जाता है।