Capitalization

2005-09-14 #code-snippets#csharp

D'après C# Regular Expressions :

using System.Text.RegularExpressions;

public class MyClass {

  public static void Main() {
    string text = "the quick red fox jumped over the lazy brown DOG.";
    System.Console.WriteLine("text=[" + text + "]");
    string result = Regex.Replace(text, @"w+", new MatchEvaluator(MyClass.CapText));
    System.Console.WriteLine("result=[" + result + "]");
    System.Console.ReadLine();
  }

  static string CapText(Match m) {
    string temp = m.ToString();
    temp = char.ToUpper(temp[0]) + temp.Substring(1, temp.Length - 1).ToLower();
    return temp;
  }

}

Edit : commentaire de utagger :

Here's a shorter version:

protected void Button1_Click(object sender, EventArgs e) {
  Label1.Text = Regex.Replace(TextBox1.Text, @”\b\w”, new MatchEvaluator(stam));
}

protected string stam(Match m) {
  return m.Value.ToUpper();
}

(the trick is using \b which is a 0-length match of word boundaries, including ^ and \s)