ধরা যাক আমার কাছে নীচের রেজেক্স রয়েছে:
-(\d+)-
এবং আমি সি # টি ব্যবহার করে, গ্রুপ 1 এর (\d+)
সাথে প্রতিস্থাপন করতে চাই AA
:
-AA-
এখন আমি এটি ব্যবহার করে এটি প্রতিস্থাপন করছি:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
তবে আমি সত্যিই এটি পছন্দ করি না, কারণ আমি যদি _(\d+)_
পরিবর্তে প্যাটার্নটি মেলে , তবে আমাকে প্রতিস্থাপনের স্ট্রিংটিও পরিবর্তন করতে হবে _AA_
এবং এটি ডিআরওয়াই নীতিবিরোধী।
আমি এরকম কিছু খুঁজছি:
ম্যাচযুক্ত পাঠ্যটি ঠিক কীভাবে রাখুন তবে গোষ্ঠী 1 দ্বারা this text
এবং গ্রুপ 2 দ্বারা পরিবর্তন করুন another text
...
সম্পাদনা:
এটি কেবল একটি উদাহরণ ছিল। আমি উপরে যা বলেছি তা করার একটি সাধারণ উপায় সন্ধান করছি।
এটির জন্য কাজ করা উচিত:
anything(\d+)more_text
এবং যে কোনও প্যাটার্ন আপনি কল্পনা করতে পারেন।
আমি যা করতে চাই তা হ'ল কেবলমাত্র গ্রুপগুলি প্রতিস্থাপন এবং বাকি ম্যাচটি চালিয়ে যাওয়া।
:)
। আমার মতে, সমাধানটি লুক-হেড এবং লুকবিহিন্ড ব্যবহার করার চেয়ে অনেক ভাল এবং পরিষ্কার।