दिलचस्प पोस्ट
ग्रहण सी ++: "प्रोग्राम" जी ++ "पाथ में नहीं मिला" एमवीसी (मॉडल व्यू नियंत्रक) क्या है? प्रतिबद्ध के बाद जिटग्नोर उबंटू में स्रोत रिपॉजिटरी से जीआईटी उन्नयन उद्देश्य सी: एक "(आईडी) प्रेषक" क्या है? एंड्रॉइड एमुलेटर ओपनजीएल ईएस 3.0 का समर्थन करता है? ड्रॉपबॉक्स के साथ मर्कुरियल (और, मुझे गिट लगता है): कोई भी कमियां? विंडोज में सी + + उच्च परिशुद्धता समय माप WKWebView में मूल कोड से जावास्क्रिप्ट फ़ंक्शन को कॉल करें एडिटर में कस्टम व्यू के साथ लेआउट देखने के लिए isInEditMode () का उपयोग कैसे करें आप उद्देश्य-सी में एक विशिष्ट तारीख के लिए वर्ष के दिन की गणना कैसे करते हैं? Ggplot अक्ष लेबल में अनुलिपि पत्र dyld: पुस्तकालय लोड नहीं किया गया … कारण: छवि लोड नहीं की गई मोंगोडीबी – क्या दशमलव मूल्य के बारे में? AVAudioPlayer को नियंत्रित करने के लिए UISlider

नियमित अभिव्यक्ति का उपयोग करने के लिए या नहीं?

मैंने सिर्फ एक प्रश्न के बारे में पूछा था कि -90.0 और +90.0 के बीच संख्याओं को अनुमति देने के लिए एक नियमित अभिव्यक्ति का उपयोग करें। मुझे नियमित अभिव्यक्ति को लागू करने के बारे में कुछ उत्तर मिले, लेकिन अधिकांश उत्तर में यह भी उल्लेख किया गया था कि नियमित रूप से अभिव्यक्ति के बिना या नियमित अभिव्यक्ति का उपयोग किए बिना इसे बेहतर ढंग से नियंत्रित किया जाएगा। तो आप कैसे तय करते हैं कि नियमित अभिव्यक्ति का उपयोग कब किया जाए और नियमित अभिव्यक्ति का उपयोग न करें। क्या कोई चेक सूची है जिसका आप पालन कर सकते हैं?

Solutions Collecting From Web of "नियमित अभिव्यक्ति का उपयोग करने के लिए या नहीं?"

नियमित अभिव्यक्ति वर्ण-आधारित परीक्षणों के लिए एक पाठ प्रसंस्करण टूल हैं। अधिक औपचारिक रूप से, नियमित अभिव्यक्तियां सामान्य भाषाओं को संभालने में अच्छी लगती हैं और लगभग किसी भी चीज़ पर खराब होती हैं

व्यवहार में, इसका मतलब है कि नियमित अभिव्यक्ति उन कार्यों के लिए अच्छी तरह से अनुकूल नहीं होती है, जो कि पाठ में अर्थ ( शब्दार्थ ) की खोज करने की आवश्यकता होती है जो वर्ण स्तर से परे हो। यह एक पूर्ण विकसित पार्सर की आवश्यकता होगी

आपके विशेष मामले में: किसी पाठ में एक संख्या को पहचानना एक ऐसा व्यायाम होता है जो नियमित अभिव्यक्तियां अच्छी होती है (दशमलव संख्या को एक नियमित भाषा का उपयोग करके वर्णित किया जा सकता है)। यह चरित्र स्तर पर काम करता है

लेकिन संख्या के साथ और अधिक उन्नत सामग्री करनी है जिसके लिए इसके संख्यात्मक मूल्य (अर्थात इसके शब्दों) की आवश्यकता होती है, को व्याख्या की आवश्यकता होती है इस पर नियमित अभिव्यक्ति खराब होती है तो पाठ में एक नंबर ढूँढने में आसान है। पाठ में एक नंबर ढूँढना जो 11 से बड़ा है, लेकिन 1004 से कम (या वह 3 से विभाज्य है) मुश्किल है: इसे संख्या के अर्थ को पहचानने की आवश्यकता है

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

उदाहरण के लिए, यदि आप जानते हैं कि आप डेटटाइम के साथ काम कर रहे हैं, तो आप पार्स और ट्राई पेर्स विधियों का उपयोग कर सकते हैं, विभिन्न प्रारूप और यह आमतौर पर आपके खुद के रेगेक्स एक्सप्रेशंस से अधिक विश्वसनीय होगा।

आपके उदाहरण में, आप संख्याओं के साथ काम कर रहे हैं, तदनुसार उनसे निपटें।

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

परिपत्र या नीच होने के अर्थ के बिना, आपको नियमित अभिव्यक्ति का उपयोग करना चाहिए जब आपके पास एक स्ट्रिंग होती है जिसमें एक नियमित भाषा में संरचित जानकारी होती है, और आप इस स्ट्रिंग को ऑब्जेक्ट मॉडल में बदलना चाहते हैं।

जवाब सीधे आगे है:

यदि आप अपनी समस्या को नियमित अभिव्यक्ति (केवल स्ट्रिंग फ़ंक्शन द्वारा) के बिना हल कर सकते हैं, तो आप नियमित अभिव्यक्तियों का उपयोग नहीं करते हैं जैसा कि मैंने एक किताब में पढ़ा है: नियमित अभिव्यक्ति कम्प्यूटर पर हिंसा है

यदि यह भाषा स्ट्रिंग फ़ंक्शंस का उपयोग करने के लिए जटिल है, तो नियमित अभिव्यक्ति का उपयोग करें।

RegEx के लिए बेसिक उपयोग-केस: –

  1. आपको "कुंजी मान जोड़े" की आवश्यकता है – अन्य शोर पाठ के भीतर कुंजी और मान दोनों एम्बेडेड हैं – अन्यथा प्रवेश नहीं किया जा सकता है या पृथक किया जा सकता है

  2. आपको एकाधिक दस्तावेज़ों को पाशन करके इन मूल्यों को निकालना स्वचालित करना होगा।

  3. संख्या और कुंजी वैल्यू युग्मों का संयोजन, जैसा कि आप पाठ के माध्यम से पार्सिंग की प्रगति की खोज करते हैं।