2015-12-01 35 views
1

在VB.NET中,有多種方法可以在多個案例的字符串上使用VbStrConv.ProperCaseVB.NET使用VbStrConv.ProperCase與多案例名稱?

例如,如果要轉換的字符串是"McGreggor",使用.ProperCase這將其更改爲"Mcgreggor",這是不正確的人的名字。 "O'Neil"轉換爲"O'neil"和其他格式相同的名稱也適用。

編輯:我也需要它仍然符合.ProperCase的規則。 EG:JOHN變成John,並且McGReGgor變成McGreggor

有沒有辦法做到這一點,或我沒有選擇?

回答

2

如何將正則表達式轉換爲大寫單個a-z後面的空格?

Dim text As String = "McGreggor O'Neil smith jones" 

text = System.Text.RegularExpressions.Regex.Replace(text, "\s([a-z])", 
      Function(m) 
       Return m.Value.ToUpper() 
      End Function) 

「McGreggor奧尼爾史密斯瓊斯」

+0

似乎不錯,但這不會小寫非首字母會嗎?本質上,我需要的東西完全符合.ProperCase所做的,但有上面的例外(及其變體)。 –

+0

我會在「」上分割,然後循環每個單詞,小寫它,比較一個已知的例外列表,比如'mc','o''並且適當地應用大寫 –