using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?P<first>^(?P<intend>\s*?)diagGetParameterRaw.+?(?P<diagresp>\w.+?),.*?\""SecurityClass\"", (?P<first_rest>.+?;(?P<newline>[\n\r]+)))(?P<second>(?P<second_start>\s*?_DiagGenerateKeyFromSeed.+.?buffer,).+?(?P<second_rest>0x\d+?,.+))";
string substitution = @"\g<newline>\g<intend>\g<newline>//\g<intend>removed the next two lines as diva uses only one of our three parameters\g<newline>//\g<first>//\g<second>\g<newline>//\g<intend>\g<newline>//\g<intend>this works correctly:\g<newline>\g<intend>\g<newline>\g<intend>RawDiagGetParameterRaw ( \g<diagresp>, 16, 64, \g<first_rest>\g<second_start> 8, \g<second_rest>\g<newline>\g<newline>//\g<intend>replacement ends here\g<newline>\g<intend>";
string input = @"// diagGetParameterRaw(transition_1_2_0_Resp, ""SecurityClass"", buffer, 4096);
// _DiagGenerateKeyFromSeed (buffer, 1, 0x11, ""BR120x"", "", op1, 6, _length); length = 6;
*******
diagGetParameterRaw(transition_1_2_0_Resp, ""SecurityClass"", buffer, 4096);
_DiagGenerateKeyFromSeed (buffer, 1, 0x11, ""BR120x"", "", op1, 6, _length); length = 6;
diagGetParameterRaw(transition_1_2_0_Resp, ""SecurityClass"", buffer, 4096);
_DiagGenerateKeyFromSeed (buffer, 1, 0x11, ""BR120x"", "", op1, 6, _length); length = 6;
****************
RawDiagGetParameterRaw(transition_1_0_0_Resp, 16, 64, buffer, 4096);
_DiagGenerateKeyFromSeed (buffer, 8, 0x11, ""BR120x"", "", op1, 6, _length); length = 6;
";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase;
Regex regex = new Regex(pattern, options);
string result = regex.Replace(input, substitution);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx