回答
編輯:添加下面
Dim input As String = "The quick brown fox jumps over the lazy dog"
Dim pattern As String = "\b(\w|['-])+\b"
' With lambda support:
Dim result As String = Regex.Replace(input, pattern, _
Function (m) m.Value(0).ToString().ToUpper() & m.Value.Substring(1))
VB.NET代碼如果您不能使用lambda表達式,然後使用一個MatchEvaluator相反:
Dim evaluator As MatchEvaluator = AddressOf TitleCase
Dim result As String = Regex.Replace(input, pattern, evaluator)
Public Function TitleCase(ByVal m As Match) As String
Return m.Value(0).ToString().ToUpper() & m.Value.Substring(1)
End Function
這不是真正的標題情況下的MS Word格式意義,但足夠接近。
沒有指定的語言,但在C#中,你可以這樣做:
string input = "The quick brown fox jumps over the lazy dog";
string pattern = @"\b(\w|['-])+\b";
string result = Regex.Replace(input, pattern,
m => m.Value[0].ToString().ToUpper() + m.Value.Substring(1));
這很好地處理一個字母的單詞,如子串不會扔東西的錯誤,如「A 「在輸入中。
在哪些情況下lambda在VB.NET和/或C#中不可用? – 2011-12-13 14:42:40
@MagnusSmith在使用不支持它們的版本時,即C#2.0和VB.NET 8.0(通常與Visual Studio 2005和.NET 2.0相關聯)。 – 2011-12-13 19:35:29
Downvote解釋? – 2013-06-18 11:31:34
你可以做到這一點,但是這是大多數編程語言中一個很常見的功能。例如,該函數是PHP中的ucwords($ word)。
我從來沒有使用過PHP,但不記得我用過的其他語言中的這種方法,儘管我可能沒有注意到它。 – Jeremy 2009-11-03 16:24:05
看看Capitalize First Letter of Each Word和C# Uppercase Words in String,我發佈了兩種語言,Perl和C#,因爲你沒有指定你正在使用的語言。
s/\b(\w+)\b/ucfirst($1)/ge
不錯又簡單 - 簡單的說就是\ \ b(\ w +)/ \ u $ 1/g'或's/\ b(\ w)/ \ U \ 1/g'。不幸的是,這個問題現在指定了VB.NET,所以這個Perl的答案不再相關... – ephemient 2009-11-03 17:18:39
不要在「純」正則表達式,但大多數特定平臺的實現有辦法做到這一點:
例如,在蟒蛇:
import re
re.compile(r'\b\w').sub(lambda x: x.group(0).upper(), 'hello')
在這種情況下,我們通過一個可調用的lambda到sub()方法(而不是替換字符串),它將返回匹配的字符串大寫。大多數語言都有一些相同的地方,你可以將「可替代」作爲「替代品」。
在VB.NET,你可以通過你的 '替代' 拉姆達爲Function (x) x.Value(0).ToString().ToUpper()
.NET對此有內置支持。有關文檔,請參見TextInfo.ToTitleCase。
我的代碼包含一些C#的擴展方法。我認爲VB.NET也有,但我不知道VB.NET能夠自己轉換它們。
public static class StringExtensions {
public static string ToTitleCase(this string value) {
return value.ToTitleCase(CultureInfo.InvariantCulture);
}
public static string ToTitleCase(this string value, CultureInfo culture) {
return value.ToTitleCase(culture.TextInfo);
}
public static string ToTitleCase(this string value, TextInfo textInfo) {
return textInfo.ToTitleCase(value);
}
}
爲什麼不直接使用內置的TextInfo.ToTitleCase() method已經在.NET Framework?
string capitalized = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase("this string should be capitalized!");
Dim s As String = "your string"
Dim s2 As String = StrConv(s, VbStrConv.ProperCase
MessageBox.Show(s2)
使用ProperCase
功能:
Dim Str As String = "the quick brown fox jumps over the lazy dog"
Dim NewStr As String = StrConv(Str, VbStrConv.ProperCase)
做這個文本框的按鍵事件。
If e.KeyChar <> ChrW(Keys.Back) Then
If txtEname.Text = "" Then
e.KeyChar = UCase(e.KeyChar)
End If
End If
- 1. 正則表達式來大寫每個單詞的第一個字母
- 2. 正則表達式第一個單詞的大寫字母
- 3. 使用正則表達式在動作腳本中大寫每個單詞使用正則表達式大寫
- 4. 正則表達式大寫單詞的第二個字母
- 5. 正則表達式大寫每個單詞的每個第一個字母並忽略一些
- 6. 用第一個大寫字母匹配單詞的正則表達式
- 7. 如何使用正則表達式選擇字符串的每個單詞的第一個字母
- 8. 正則表達式大寫第一個字符
- 9. 正則表達式除了第一個單詞之外的每個單詞
- 10. 如何在PHP中使用正則表達式獲取每個單詞的第一個字母
- 11. 用整個單詞和可選的第一個字符的正則表達式
- 12. 什麼是正確的正則表達式來匹配大寫字母只有第一個字母的單詞
- 13. 正則表達式「追加」或「替換」每個單詞的第一個字母?
- 14. 紅寶石/正則表達式得到每個單詞的第一個字母
- 15. 使用正則表達式掩蓋除一個單詞的第一個字母
- 16. 如何大寫縮寫和字符串中的每個第一個單詞?
- 17. 使用正則表達式來大寫字符串的第一個和最後一個單詞的第一個字母?
- 18. 大寫每個大寫單詞的第一個字母
- 19. html5正則表達式,表示大寫第一個字母
- 20. 正則表達式來找到一個單詞,並用數字
- 21. 字符類大寫字符串中每個單詞的第一個字母
- 22. 正則表達式在字段中的每個單詞的開始處找到大寫字符
- 23. Swift大寫字母中每個單詞的第一個字母
- 24. 使前3個字符爲大寫使用正則表達式
- 25. 正則表達式匹配句子中的第一個單詞
- 26. 正則表達式,一個字符串中的兩個大寫字符
- 27. 如何使單詞的第一個字符大寫?
- 28. 如何使用正則表達式來抓取第八個字
- 29. 使用正則表達式刪除每個單詞末尾的特定字符
- 30. 如何寫一個正則表達式來捕獲大寫字母除外的所有單詞
您應該指定一種編程語言,或者要求語言不可知的答案。 – 2009-11-03 15:55:09
@Jeremy:我將VB.NET等同於我的回覆 – 2009-11-03 16:53:17