इनपुट स्ट्रिंग कुछ इस तरह है:कैसे regex के लिए विधि परिणाम के साथ मैच समूह आइटम की जगह
लीनिया: 50
LineB: 120
लीनिया: 12
LineB: 53
मैं MultiplyCalculatorMethod(LineAValue)
के परिणामस्वरूप लाइनबी मानों को प्रतिस्थापित करना चाहता हूं, जहां LineAValue
से ऊपर की रेखा का मान हैऔर MultiplyCalculatorMethod
मेरी अन्य, जटिल सी # विधि है।
अर्द्ध कोड में, मैं कुछ इस तरह करना चाहते हैं:
int MultiplyCalculatorMethod(int value)
{
return 2 * Math.Max(3,value);
}
string ReplaceValues(string Input)
{
Matches mat = Regex.Match(LineA:input_value\r\nLineB:output_value)
foreach (Match m in mat)
{
m.output_value = MultiplyCalculatorMethod(m.input_value)
}
return m.OutputText;
}
Example:
string Text = "LineA:5\r\nLineB:2\r\nLineA:2\r\nLineB:7";
string Result = ReplaceValues(Text);
//Result = "LineA:5\r\nLineB:10\r\nLineA:2\r\nLineB:6";
मैं LineA: value\r\nLineB: value
से मेल खाते हैं और समूहों में इन मूल्यों को प्राप्त करने के लिए एक Regex.Match
लिखा था। लेकिन जब मैं Regex.Replace
का उपयोग करता हूं, तो मैं केवल "स्थिर" परिणाम प्रदान कर सकता हूं जो मैच से समूहों को जोड़ रहा है, लेकिन मैं वहां सी # विधियों का उपयोग नहीं कर सकता।
तो मेरे प्रश्न Regex को कैसे करें। जगह बदलें जहां परिणाम सी # विधि का परिणाम है जहां इनपुट LineA मान है।
@tomaszs: यह पूरी तरह से मेरे लिए स्पष्ट नहीं है। शायद आपके दिए गए इनपुट स्ट्रिंग के लिए अपेक्षित परिणाम स्ट्रिंग प्रदान करने में आपकी सहायता होगी। –
मैंने उदाहरण जोड़ा है –