नियमित अभिव्यक्ति का उपयोग न करें:
यह HTML तक सीमित नहीं है । एक साधारण वैध XML को एक नियमित अभिव्यक्ति के साथ यथोचित रूप से पार्स नहीं किया जा सकता है, भले ही आप स्कीमा जानते हों और आपको पता हो कि यह कभी नहीं बदलेगा।
उदाहरण के लिए, C # स्रोत कोड को पार्स करने का प्रयास न करें । इसके बजाय, एक सार्थक पेड़ संरचना या टोकन प्राप्त करने के लिए इसे पार्स करें।
- अधिक आम तौर पर, जब आपके पास अपना काम करने के लिए बेहतर उपकरण होते हैं।
क्या होगा अगर आपको एक पत्र की तलाश करनी चाहिए, छोटी और पूंजी दोनों? यदि आप नियमित अभिव्यक्ति पसंद करते हैं, तो आप उनका उपयोग करेंगे। लेकिन क्या एक के बाद एक दो खोजों का उपयोग करना आसान / तेज़ / पठनीय नहीं है? संभावनाएं अधिकांश भाषाओं में हैं जिनसे आप बेहतर प्रदर्शन प्राप्त करेंगे और अपने कोड को अधिक पठनीय बना पाएंगे।
उदाहरण के लिए इंगो के जवाब में नमूना कोड एक अच्छा उदाहरण है जब आपको नियमित अभिव्यक्ति का उपयोग नहीं करना चाहिए। बस खोजते हैं foo
, फिर के लिए bar
।
- जब मानव लेखन को पार्स कर रहा है।
एक अच्छा उदाहरण एक अश्लीलता फ़िल्टर है। न केवल इसे लागू करने के लिए सामान्य रूप से एक बुरा विचार है, लेकिन आपको इसे नियमित अभिव्यक्तियों का उपयोग करने के लिए लुभाया जा सकता है, और आप इसे गलत करेंगे। ऐसे बहुत से तरीके हैं जिनसे एक मानव एक शब्द, एक संख्या, एक वाक्य लिख सकता है और दूसरे मानव द्वारा समझा जाएगा, लेकिन आपकी नियमित अभिव्यक्ति नहीं। इसलिए वास्तविक अश्लीलता को पकड़ने के बजाय, आपकी नियमित अभिव्यक्ति अन्य उपयोगकर्ताओं को चोट पहुंचाने में अपना समय व्यतीत करेगी।
- कुछ प्रकार के डेटा को मान्य करते समय।
उदाहरण के लिए, एक ई-मेल पते को एक नियमित अभिव्यक्ति के माध्यम से मान्य नहीं करें। ज्यादातर मामलों में, आप इसे गलत करेंगे। एक दुर्लभ मामले में, आप इसे सही करेंगे और 6 343 अक्षरों की लंबाई वाली कोडिंग हॉरर के साथ समाप्त करेंगे ।
सही उपकरणों के बिना, आप गलतियाँ करेंगे। और आप उन्हें अंतिम क्षण में नोटिस करेंगे, या शायद कभी नहीं। यदि आप साफ कोड की परवाह नहीं करते हैं, तो आप कोई टिप्पणी, कोई रिक्त स्थान, कोई newlines के साथ एक बीस लाइनों स्ट्रिंग लिखेंगे।
- जब आपका कोड पढ़ लिया जाएगा। और फिर अलग-अलग डेवलपर्स द्वारा हर बार फिर से, और फिर से पढ़ा।
गंभीरता से, अगर मैं आपका कोड लेता हूं और इसकी समीक्षा करनी चाहिए या इसे संशोधित करना चाहिए, तो मैं एक सप्ताह बिताने की कोशिश नहीं करना चाहता हूं, जो बीस रेखाओं के लंबे स्ट्रिंग को बहुत सारे प्रतीकों को समझने की कोशिश कर रहा है।