একটি মৃত ঘোড়াটিকে পেটানোর জন্য দুঃখিত, তবে এটি একপ্রকার অদ্ভুত যে কেউই এটিকে নির্দেশ করেনি - "হ্যাঁ আপনি পারেন তবে এটি বাস্তব জীবনে আপনি কীভাবে দলগুলিকে বন্দী করে রাখছেন তার বিপরীত"।
আপনি যদি রেজেক্সকে যেভাবে ব্যবহার করতে চান সেভাবে ব্যবহার করেন, সমাধানটি এর মতোই সহজ:
"6 example input 4".replaceAll("(?:\\d)(.*)(?:\\d)", "number$11");
বা নীচে shmosel দ্বারা যথাযথভাবে নির্দেশিত,
"6 example input 4".replaceAll("\d(.*)\d", "number$11");
... যেহেতু আপনার রেজেক্সে দশমিকগুলি মোটেও গ্রুপ করার কোনও ভাল কারণ নেই।
আপনি যে স্ট্রিংটি ফেলে দিতে চান সেই অংশগুলিতে আপনি সাধারণত ক্যাপচারিং গ্রুপ ব্যবহার করবেন না , আপনি যে স্ট্রিংটি রাখতে চান তার অংশে ব্যবহার করুন ।
আপনি যদি সত্যিই এমন গ্রুপগুলি চান যা আপনি প্রতিস্থাপন করতে চান তবে আপনি সম্ভবত এটির বদলে যা চান সেটি হ'ল টেম্প্লেটিং ইঞ্জিন (যেমন গোঁফ, ইজেস, স্ট্রিংটেম্পলেট, ...)।
কৌতূহলীদের একপাশে, এমনকি রেজেক্সগুলিতে নন-ক্যাপচারিং গোষ্ঠীগুলি ঠিক সেখানে রয়েছে যে রেজেক্স ইঞ্জিনটি ভেরিয়েবল পাঠ্যকে সনাক্ত করতে এবং এড়াতে তাদের প্রয়োজন। উদাহরণস্বরূপ, ইন
(?:abc)*(capture me)(?:bcd)*
আপনি তাদের প্রয়োজন হলে আপনার ইনপুট হয় "abcabc মত সন্ধান করতে পারেন ক্যাপচার আমাকে bcdbcd" বা "এবিসি ক্যাপচার আমাকে BCD" বা এমনকি শুধু "আমাকে ক্যাপচার"।
বা এটিকে অন্য উপায়ে রাখতে: পাঠ্যটি যদি সর্বদা একই থাকে এবং আপনি এটি ক্যাপচার না করেন তবে গোষ্ঠীগুলি ব্যবহার করার কোনও কারণ নেই।