2012-01-25 19 views
10

私は文字列「THURSDAY 26th JANUARY 2011」を持っています。C#ToTitleCaseとテキスト形式の日付/時刻

私はこの使用CultureInfo.ToTitleCase()フォーマットする場合:"Thursday 26Th January 2011"

var dateString = "THURSDAY 26th JANUARY 2011"; 
var titleString = myCultureInfoObject.TextInfo.ToTitleCase(dateString); 

をそれはこのように表示されています。これはまさに私が必要としているものです... を除き、T26Thを大文字にしました。それは日付であり、間違っているように起こることからこれを止める方法はありますか?私はそれらの直前に番号を持っていないタイトルケーシング文字だけですか?

あなたはタイトルの場合にのみ「本物」の言葉を入れて MatchEvaluatorで正規表現を使用することができ

答えて

8

var dateString = "THURSDAY 26th JANUARY 2011"; 
MatchEvaluator ev = m => myCultureInfoObject.TextInfo.ToTitleCase(m.Value); 
var titleString = Regex.Replace(dateString, @"\b[a-zA-Z]+\b", ev); 

これは、「木曜日」と「1月」ではなく、「26TH」にタイトルケースを適用しますこれは正規表現のパターンと一致しないためです。

+3

+1 - いいですが、正規表現の問題を解決する方法については何を言いますか?今あなたには2つの問題があります。 :) –

+5

誰もが元気! http://xkcd.com/208/ – jrummell

関連する問題