I want to replace all Special Characters which can't be parse in URL including space, double space or any big space with '-' using C#.

I don't want to use any Parse Method like System.Web.HttpUtility.UrlEncode.

How to do this ? I want to include any number of space between two words with just one '-'.

For example, if string is Hello# , how are you?
Then, Result should be, Hello-how-are-you, no '-' if last index is any special character or space.

3

3 Answers

 string str = "Hello# , how are you?"; string newstr = ""; //Checks for last character is special charact var regexItem = new Regex("[^a-zA-Z0-9_.]+"); //remove last character if its special if (regexItem.IsMatch(str[str.Length - 1].ToString())) { newstr = str.Remove(str.Length - 1); } string replacestr = Regex.Replace(newstr, "[^a-zA-Z0-9_]+", "-"); 

INPUT: Hello# , how are you?

OUTPUT: Hello-how-are-you

EDIT: Wrap it inside a class

 public static class StringCheck { public static string Checker() { string str = "Hello# , how are you?"; string newstr = null; var regexItem = new Regex("[^a-zA-Z0-9_.]+"); if (regexItem.IsMatch(str[str.Length - 1].ToString())) { newstr = str.Remove(str.Length - 1); } string replacestr = Regex.Replace(newstr, "[^a-zA-Z0-9_]+", "-"); return replacestr; } } 

and call like this,

 string Result = StringCheck.Checker(); 
2
string[] arr1 = new string[] { " ", "@", "&" }; newString = oldString; foreach repl in arr1 { newString= newString.Replace(repl, "-"); } 

Of course you can add into an array all of your spec characters, and looping trough that, not only the " ".

More about the replace method at the following link

1

You need two steps to remove last special character and to replace all the remaining one or more special characters with _

public static void Main() { string str = "Hello# , how are you?"; string remove = Regex.Replace(str, @"[\W_]$", ""); string result = Regex.Replace(remove, @"[\W_]+", "-"); Console.WriteLine(result); Console.ReadLine(); } 

IDEONE

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy