नियमित अभिव्यक्ति ठीक प्रतीत होती है, क्योंकि पहली पंक्ति रेखा "helloworld" के साथ सबस्ट्रिंग को सही ढंग से प्रतिस्थापित करती है, लेकिन उसी अभिव्यक्ति बाद में मेल नहीं खाती क्योंकि मैं नहीं कर सकता "whynothelloworld" देखें? क्योंकि आप बस "HelloWorld" से बदल दिया सांत्वनापैटर्न.मैट्स काम नहीं करता है, जबकि प्रतिस्थापित करता है
System.out.println(current_tag.replaceAll("^[01][r]\\s", "helloworld"));
if (Pattern.matches("^[01][r]\\s", current_tag)) { System.out.println("whynothelloworld?");}
ऐसा लगता है कि हर किसी की तरह लगता है लेकिन जब जावा पर पहली बार आया तो मुझे वह गलती हुई। मैं कैसे बच निकला मैं जानता नहीं। किसी भी तरह से मैं 'खोज' का उपयोग करने के लिए हमेशा भाग्यशाली था, कभी भी 'मैचों' नहीं था, और इससे पहले कि मैंने अंतर देखा। मुझे लगता है कि ऐसा इसलिए था क्योंकि मैं पहले जावा प्रोजेक्ट में लंबे समय तक (आईएसएच) पहले बढ़ता हुआ मिलान कर रहा था। फिर भी, मैं इसे एक डिजाइन/उपयोगकर्ता-इंटरफ़ेस दोष मानता हूं कि उन्होंने यह मूर्खतापूर्ण चीज़ की है। – tchrist
यहां तक कि वीडर भी पाइथन है: 're.match' स्ट्रिंग की शुरुआत के लिए regex को अंधाधुंध रूप से एंकर करता है (लेकिन अंत तक नहीं) जबकि' re.search() 'अपेक्षित व्यवहार करता है (जैसे जावा में 'matcher.find()')। –
अब यह स्पष्ट है :) tnx आवंटित, यह एक आकर्षण की तरह काम करता है! –