Escaping Regex replace patterns
When one wants to replace a text, say, case insensitive, one uses the .NET Regex class. In order to make sure the text to be replaced is not interpreted as a Regex pattern, the Regex.Escape method is used. But what about the replacement string? What if you want to replace the text with "${0}", which in Regexian means "the entire matched string" ? You need to somehow escape the replace pattern.
I have no idea where to find this information on MSDN, although I am sure it is hidden somewhere in all that Regex labyrinth. Here is the link on MSDN: Substitutions
So here is the info: You only need escaping the dollar sign, so the code would look like this:
Now the value of s is "here is the ${0}".
So here is the info: You only need escaping the dollar sign, so the code would look like this:
Regex reg=new Regex("Text to replace",RegexOptions.CaseInsensitive);
string s="here is the text to replace";
s=Regex.Replace(s,"$${0}");
Thank you so freakin' much for this little nugget!
ReplyDeleteI was about to loose it. lol
You are welcome. Nice blog.
ReplyDelete