Matcher वर्ग की appendReplacement() विधि एक StringBuffer ऑब्जेक्ट और एक String (प्रतिस्थापन स्ट्रिंग) को पैरामीटर के रूप में स्वीकार करती है और, मिलान की गई सामग्री को प्रतिस्थापन स्ट्रिंग के साथ बदलकर, StringBuffer ऑब्जेक्ट में इनपुट डेटा जोड़ती है।
आंतरिक रूप से, यह विधि इनपुट स्ट्रिंग से प्रत्येक वर्ण को पढ़ती है और स्ट्रिंग बफर को जोड़ती है, जब भी कोई मिलान होता है तो यह स्ट्रिंग के मिलान सामग्री भाग के बजाय प्रतिस्थापन स्ट्रिंग को बफर में जोड़ देता है और मिलान किए गए सबस्ट्रिंग की अगली स्थिति से आगे बढ़ता है।पी>
इस पद्धति में प्रतिस्थापन स्ट्रिंग पास करते समय यदि आप "/" या "$" का उपयोग करते हैं तो उन्हें नियमित वर्ण नहीं माना जाएगा और एक अपवाद होता है -
उदाहरण 1
आयात करें b> एक उदाहरण HTML स्क्रिप्ट। "; // बोल्ड टैग की सामग्री से मेल खाने के लिए नियमित अभिव्यक्ति स्ट्रिंग रेगेक्स ="(\\S+)"; System.out.println ("इनपुट स्ट्रिंग:\ n" + str); // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर में संकलित पैटर्न का मिलान करना =pattern.matcher(str); // एक खाली स्ट्रिंग बफर बनाना StringBuffer sb =new StringBuffer (); जबकि (matcher.find ()) {matcher.appendReplacement(sb, "sampledata$"); //Matcher.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println ("स्ट्रिंगबफर की सामग्री:\ n" + sb.toString ()); }}आउटपुट
इनपुट स्ट्रिंग:
यह है एक उदाहरण HTML स्क्रिप्ट।
थ्रेड "मुख्य" में अपवाद /पूर्व>मैचर वर्ग की कोट रिप्लेसमेंट विधि एक स्ट्रिंग मान को स्वीकार करती है और एक शाब्दिक प्रतिस्थापन स्ट्रिंग लौटाती है। यानी दिए गए स्ट्रिंग में वर्णों / और $ को अनदेखा कर दिया जाता है और परिणाम appendReplacement() के पैरामीटर के रूप में उपयोग किए जा सकते हैं विधि।
उदाहरण 2
आयात करें b> एक उदाहरण HTML स्क्रिप्ट। "; // बोल्ड टैग की सामग्री से मेल खाने के लिए नियमित अभिव्यक्ति स्ट्रिंग रेगेक्स ="(\\S+)"; System.out.println ("इनपुट स्ट्रिंग:\ n" + str); // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर में संकलित पैटर्न का मिलान करना =pattern.matcher(str); // एक खाली स्ट्रिंग बफर बनाना StringBuffer sb =new StringBuffer (); जबकि (matcher.find ()) {matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println ("स्ट्रिंगबफर की सामग्री:\ n" + sb.toString ()); }}
आउटपुट
इनपुट स्ट्रिंग:यह है एक उदाहरण HTML स्क्रिप्ट।
स्ट्रिंगबफर की सामग्री:यह Bo$ld/Data$ और Bo$ld/Data$ HTML Bo$ld/Data$।
उदाहरण 3
आयात करें स्ट्रिंग रेगेक्स ="[#]"; // एक पैटर्न ऑब्जेक्ट बनाना पैटर्न पैटर्न =Pattern.compile(regex); // स्ट्रिंग मैचर मैचर =पैटर्न.मैचर (इनपुट) में संकलित पैटर्न का मिलान करना; // एक खाली स्ट्रिंग बफर बनाना स्ट्रिंग str =Matcher.quoteReplacement("sampledata"); System.out.println (str); }}आउटपुट
नमूना डेटा