मान लीजिए कि मेरे पास निम्नलिखित रेगेक्स है:
-(\d+)-
और मैं बदलने के लिए, सी #, समूह 1 का उपयोग कर चाहते हैं (\d+)
के साथ AA
प्राप्त करने के लिए,:
-AA-
अब मैं इसका उपयोग करके प्रतिस्थापित कर रहा हूं:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
लेकिन मुझे वास्तव में यह पसंद नहीं है, क्योंकि अगर मैं बदले के पैटर्न को बदलूं, तो मुझे _(\d+)_
प्रतिस्थापन स्ट्रिंग को _AA_
भी बदलना होगा , और यह DRY सिद्धांत के खिलाफ है।
मैं कुछ इस तरह की तलाश में हूँ:
मिलान किए गए पाठ को ठीक से कैसे रखें, लेकिन समूह 1 को this text
समूह 2 से बदलकर रखें another text
...
संपादित करें:
यह सिर्फ एक उदाहरण था। मैं बस वही कर रहा हूँ जो मैंने ऊपर कहा था।
इसके लिए काम करना चाहिए:
anything(\d+)more_text
और किसी भी पैटर्न की आप कल्पना कर सकते हैं।
मैं केवल यही करना चाहता हूं कि केवल समूहों को बदल दिया जाए, और शेष मैच को बनाए रखा जाए।
:)
। मेरी राय में, यह समाधान लुकहेड और लुकबाइंड का उपयोग करने की तुलना में बहुत बेहतर और क्लीनर है।