TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to C-SHARP

C# Regex.Escape and Unescape Methods

Use the Regex.Escape method from the System.Text.RegularExpressions namespace.
Escape, Unescape. Regex.Escape changes certain character sequences. It converts user-specified strings into escaped strings to match in a regular expression.Regex
After escaping, the patterns can be used—we can load Regex patterns from user input this way. With Unescape, also part of the Regex class, we reverse the Escape operation.
Escape. Regex.Escape is a static method that receives a string. Internally the Escape method allocates a new string containing the escaped character sequence and returns its reference.

Info: Value1 is the input that the user specifies. The user in this example specified the string "\123".

Then: This value is then escaped with Regex.Escape and becomes "\\123". So another backslash was added with Escape.

Finally: The Regex.Replace method is called with the escaped value and replaces the pattern "\\123".

C# program that uses Regex.Escape using System; using System.Text.RegularExpressions; class Program { static void Main() { // User specified to remove this string. string value1 = @"\123"; // Escape the input. value1 = Regex.Escape(value1); // Write the escaped input. Console.WriteLine(value1); // The string we are changing. string input1 = @"This is\123a string"; // Remove the user-specified pattern. string output1 = Regex.Replace(input1, value1, ""); // Write the output. Console.WriteLine(output1); } } Output (The backslash character was replaced.) \\123 This isa string
Regex.Replace call result. Because the escaped string has 2 backslashes and not just one, the backslash is treated as a character in the regular expression and not an escape code.

Then: The Replace method can match the character group "\123" and remove it from the final result.

Unescape, notes. Many regular expressions contain escaped characters. Sometimes you want to unescape these characters to get their original representation.
Unescape. This program first calls the Regex.Unescape method on the string literal "\\n". This is an escaped backslash "\\" and an "n".

Unescape: The Unescape method transforms the escaped backslash into a regular backslash "\".

String Literal

Then: The method transforms the escaped newline sequence (the two characters "\n") into a real newline.

C# program that unescapes strings using System; using System.Text.RegularExpressions; class Program { static void Main() { // You were using a Regex that matches the literal \n. // With Unescape, you can see the exact text that would be matched. string result = Regex.Unescape(@"\\n"); Console.WriteLine(result); // Unescape again to get an actual newline. result = Regex.Unescape(result); Console.WriteLine(result == "\n"); } } Output \n True
Discussion. The Regex.Escape method has many possible uses. Because you can always escape strings in the source code that you type in, you will not need to use it in most programs.

Tip: If your program retrieves external input, you can use Escape to eliminate the chance that characters will be incorrectly used.

A question. Why would you ever want to use the Regex.Unescape method? With Unescape we can make a string more readable. It could be displayed.
Display characters. There may be cases where you have a string that is meant to be used as a regular expression pattern, but you want to display its raw characters in a user interface.

And: You could use Regex.Unescape to visualize the original representation of the characters, not the escaped representation.

A summary. We used Regex.Escape. This is a powerful static method that can be useful when preparing dynamic input for use in a regular expression method such as Replace or Split.Regex.ReplaceRegex.Split
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf