5
Regex.Replace का कहना है:रेगेक्स केवल मिलान करने वाले समूहों को प्रतिस्थापित करता है और गैर-मिलान समूहों को अनदेखा करता है?
एक निर्दिष्ट इनपुट स्ट्रिंग, सभी तार है कि एक निर्दिष्ट प्रतिस्थापन तार के साथ एक निर्दिष्ट रेगुलर एक्सप्रेशन से मेल बदल देता है।
मेरे मामले में:
string w_name = "0x010102_default_prg_L2_E2_LDep1_LLC";
string regex_exp = @"(?:E\d)([\w\d_]+)(?:_LLC)";
w_name = Regex.Replace(w_name, regex_exp, string.Empty);
आउटपुट:
0x010102_default_prg_L2_
लेकिन मैं
0x010102_default_prg_L2_E2_LLC
उम्मीद कर रहा था क्यों यह मेरी गैर मेल खाने वाले समूह को बदल रहा है (समूह 1 और 3)? और अपेक्षित आउटपुट प्राप्त करने के लिए मैं इसे कैसे ठीक करूं?
यह काम करता है: कृपया "$ 1 $ 2" "$ 1 $ 3" से समूह चयन को ठीक। क्या आप समझा सकते हैं कि यह कैसे काम करता है? अगर मुझे खाली स्ट्रिंग के बजाय "abc" कहने के साथ प्रतिस्थापित करने की आवश्यकता है तो क्या होगा? – greenfeet
@ ग्रीनफीट मुझे अपने $ regex में मौजूद दूसरे कैप समूह को हटाए जाने के बाद से '$ 1 $ 2' को $ 1 $ 3' में बदलने की आवश्यकता क्यों है। 2. बस '$ 1' और '$ 2', यानी' $ 1abc $ 2' के बीच 'abc' जोड़ें। दूसरे उत्तर के लिए, 'string.Empty' के बजाय बस 'abc" 'पर्याप्त होगा। –
आप सही हैं, मैंने नहीं देखा कि आपने दूसरे समूह को हटा दिया, धन्यवाद! – greenfeet