0
嘿傢伙我如何創建正則表達式來利用每個單詞的每個第一個字母並忽略一些單詞,如:dos,de,da。正則表達式大寫每個單詞的每個第一個字母並忽略一些
我希望像這樣的字符串: 「TEMporADA DOS TECNologoS」
是: 「Temporada DOS Tecnologos」。
謝謝
嘿傢伙我如何創建正則表達式來利用每個單詞的每個第一個字母並忽略一些單詞,如:dos,de,da。正則表達式大寫每個單詞的每個第一個字母並忽略一些
我希望像這樣的字符串: 「TEMporADA DOS TECNologoS」
是: 「Temporada DOS Tecnologos」。
謝謝
不需要正則表達式。你可以先使用TextInfo.ToTitleCase
,然後在「忽略」 -words申請小寫規則(你已經改變了DOS到DOS):
string text = "TEMporADA DOS TECNologoS";
string[] ignoreWords = {"dos", "de", "da"};
text = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text); // uppercase first letter all
var newWords = text.Split()
.Select(w => ignoreWords.Contains(w, StringComparer.OrdinalIgnoreCase)
? Char.ToLower(w[0]) + w.Substring(1)
: w);
text = String.Join(" ", newWords);
幾乎我會寫的,+1 –
你有所有你想要忽略了單詞的列表?這不是你可以定義一套或一般規則的東西... –
正則表達式可能不是特別必要的,你可以有一個'string []'你想忽略的單詞,然後拆分給定的字符串,(「* Temporada dos Tecnologos *「)在這種情況下,通過空格。然後,您可以將它們都設置爲小寫,然後檢查每個單詞是否在數組中,如果不是,您可以將第一個字母設置爲大寫。在此之後,你可以加入他們所有的空間和voila –
你可以說小於3長度的文字保證開始小寫嗎? –