मुझे पता है, इस पर मेरी राय वास्तव में है कि लोकप्रिय इसलिए तुम लोग गुमनामी में मुझे नीचे-मतदान कर सकते हैं अगर आप चाहते हैं नहीं है, लेकिन मुझे थोड़ा सा रेंट करना है (और इसमें एक समाधान है, पोस्टर द्वारा पूछे जाने वाले तरीके में नहीं)।
मुझे वास्तव में नहीं मिलता है कि लोग नियमित अभिव्यक्तियों पर इतनी जल्दी क्यों जाते हैं।
मैंने बहुत सी स्ट्रिंग पार्सिंग (स्क्रीन-स्क्रैप vt100 मेनू स्क्रीन के लिए प्रयुक्त) की है और मुझे कभी भी एक ऐसा मामला नहीं मिला है जहां नियमित अभिव्यक्ति कोड लिखने से कहीं अधिक आसान होती। (शायद एक जोड़ा थोड़ा आसान होता, लेकिन ज्यादा नहीं)।
मुझे समझ में आता है कि उन्हें एक बार जब आप उन्हें जानते हैं तो उन्हें आसान माना जाता है - लेकिन आप देखते हैं कि कोई इस तरह के एक प्रश्न पूछता है और महसूस करता है कि प्रत्येक प्रोग्रामर के लिए यह सिर्फ चमकने से आसान नहीं है। यदि यह 10 प्रोग्रामर लाइन के नीचे कहीं भी 1 प्रोग्रामर खर्च करता है, तो इसे केवल कोडिंग करने पर बहुत बड़ा नुकसान होता है, भले ही आपने 5 लाइनें लिखने में 5 मिनट लगें।
तो इसे दस्तावेज़ीकरण की आवश्यकता होगी - और यदि कोई भी उस स्तर पर है, तो उसमें आता है, वह दस्तावेज के साथ भी अपने डोमेन के बाहर ज्ञान के बिना इसे संशोधित करने में सक्षम नहीं होगा।
मेरा मतलब है कि पोस्टर को एक मामूली मामला पूछना है - तो वहां मामूली मामला जैसी चीज नहीं है।
public String getRealText(String scanMe) {
for(int i=0 ; i < scanMe.length ; i++)
if(isUpper(scanMe[i]) && isLower(scanMe[i+1]))
return scanMe.subString(i);
return null; }
मेरा मतलब यह 5 लाइनों है, लेकिन यह, सरल पठनीय है, और सबसे (सभी?) आरई पारसर्स सबसे तेज़ है। एक बार जब आप किसी विधि में नियमित अभिव्यक्ति को लपेट लेते हैं और टिप्पणी करते हैं, तो आकार में अंतर मापने योग्य नहीं होता है। समय में अंतर - पोस्टर के लिए यह स्पष्ट रूप से बहुत कम समय होगा - क्योंकि यह अगले कोड के लिए हो सकता है जो उसके कोड में आता है।
और यह स्ट्रिंग आपरेशन जो कि यहां तक कि संकेत के साथ सी में आसान हैं में से एक है - और यह भी जल्दी के बाद से परीक्षण कार्यों सी
में मैक्रो नहीं है हो सकता है वैसे, सुनिश्चित करें कि आप बना दूसरे स्लॉट में एक स्थान के लिए, केवल एक कम केस वैरिएबल नहीं, अन्यथा आप ए या आई शब्द से शुरू होने वाली किसी भी पंक्ति को याद करेंगे
यदि आप इसे मेरे "उत्तर" के नीचे नहीं बनाते हैं, सुनिश्चित करें कि आप दूसरे स्लॉट में एक स्थान की जांच करें। थोड़ी अधिक विश्वसनीयता के लिए, आप विशेष मामलों के रूप में "मैं" और "ए" की जांच कर सकते हैं। इसके अलावा, यह आपके उदाहरण "ए टेस्ट" को तोड़ देगा। यह एक बहुत अच्छा एल्गोरिदम नहीं है। –