c# - semi complex string replace? -
i have text
'random text', 'a\nb\\c\'d\\', 'ok' i want become
'random text', 'a\nb\c''d\', 'ok' the issue escaping. instead of escaping \ escape ' ''. 3rd party program can't change needing change 1 escaping method another.
the issue \\'. if string replace become \'' rather \'. \n not newline actual text \n shouldn't modified. tried using regex couldn't think of way if ' replace '' else if \\ replace \. doing in 2 step creates problem.
how replace string properly?
if understand question correctly, issue lies in replacing \\ \, can cause another replacement if occurs right before '. 1 technique replace intermediary string first you're sure not occur anywhere else, replace after you're done.
var str = @"'random text', 'a\nb\\c\'d\\', 'ok'"; str.replace(@"\\", "non_occurring_temp") .replace(@"\'", "''") .replace("non_occurring_temp", @"\"); as pointed out @alexeilevenkov, can use regex.replace both modifications simultaneously.
regex.replace(str, @"(\\\\)|(\\')", match => match.value == @"\\" ? @"\" : @"''");
Comments
Post a Comment