当前位置:  开发笔记 > 编程语言 > 正文

如何在VB.NET中使用正则表达式大写每个单词的第一个字符?

如何解决《如何在VB.NET中使用正则表达式大写每个单词的第一个字符?》经验,为你挑选了4个好方法。

是否可以使用正则表达式将每个单词的第一个字符大写?

我将在VB.net(SSIS)中使用它



1> Dan Diplo..:

为什么不使用.NET Framework中已有的内置TextInfo.ToTitleCase()方法?

string capitalized = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase("this string should be capitalized!");


这里只是一个简短的说明.要确保每个单词的首字母大写,首先需要将原始字符串转换为小写.我原来的字符串都是大写字母而`.ToTitleCase`似乎没有效果.

2> Ahmad Mageed..:

编辑:下面添加的VB.NET代码

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))

如果你不能使用lambdas,那么使用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));

这很好地处理一个字母单词,因为Substring不会在输入中的"A"之类的东西上抛出错误.



3> sisve..:

.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);
    }
}



4> 小智..:
Dim s As String = "your string"
Dim s2 As String = StrConv(s, VbStrConv.ProperCase
MessageBox.Show(s2)

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有