• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 332
  • Last Modified:

Regex C# Using it to make string "Material_Load_Table" to "Material Load Table"

Hello!

I've ran into a problem today with regex.

I would like to use a regex expression to turn "Material_Load_Table" and other similair looking sentences into "Material Load Table"

So that would be, replacing the underlines with space and turn the first letter in every word into uppercase.

(I want to solve this in one expression and I dont really want to use loops or anything else)

I've managed somehow to do something similair http://jsfiddle.net/bLm44/2/ but I am not happy with the way the code looks and it is buggy.


Any idea what I can do? Appreciate a quick answer! Ask me if there is anything unclear :)
0
clooak
Asked:
clooak
  • 2
  • 2
1 Solution
 
Johny BravoCommented:
Hi,

//Remove all the underscores
   string inputString = "Material_load_Table";
        Regex re = new Regex("_");
        string outputString = re.Replace(inputString, " ");
        string YourRequiredString = UppercaseWords(outputString);

Open in new window



//For converting starting word to capital
public static string UppercaseWords(string value)
    {
        char[] array = value.ToCharArray();
        // Handle the first letter in the string.
        if (array.Length >= 1)
        {
            if (char.IsLower(array[0]))
            {
                array[0] = char.ToUpper(array[0]);
            }
        }
        // Scan through the letters, checking for spaces.
        // ... Uppercase the lowercase letters following spaces.
        for (int i = 1; i < array.Length; i++)
        {
            if (array[i - 1] == ' ')
            {
                if (char.IsLower(array[i]))
                {
                    array[i] = char.ToUpper(array[i]);
                }
            }
        }
        return new string(array);
    }

Open in new window

0
 
Johny BravoCommented:
For Uppercase use can use ToTitleCase
Pls Refer,
http://www.dotnetperls.com/totitlecase
0
 
clooakAuthor Commented:
Thanks your link,lead me ultimately to my solution which ended up looking
     
public string ToTitleCase(string inputString)
        {  
            inputString = inputString.Replace("_", " ");
            System.Globalization.TextInfo txtInfo = System.Globalization.CultureInfo.CurrentCulture.TextInfo;
            return txtInfo.ToTitleCase(inputString.ToLower());
        }
0
 
clooakAuthor Commented:
For anyone in the future, heres what my function finally looked like, you need to add "using System.Globalization" in the top.


 public string ToTitleCase(string inputString)
        {
            return (CultureInfo.CurrentCulture.TextInfo.ToTitleCase(inputString.ToLower().Replace("_", " ")));
        }
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now