我希望在字符串中包含大写字符或下划线时添加空格.
我该怎么做呢?
例1
输入
ThisIsAnInputString
Run Code Online (Sandbox Code Playgroud)
输出(结果)
This Is An Input String
Run Code Online (Sandbox Code Playgroud)
例2
输入
This_Is_An_Input_String
Run Code Online (Sandbox Code Playgroud)
输出(结果)
This Is An Input String
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 12
您可以使用与小写字符匹配的正则表达式,后跟大写字符,并在以下之间使用可选的下划线:
string output = Regex.Replace(input, "([a-z])_?([A-Z])", "$1 $2");
Run Code Online (Sandbox Code Playgroud)
您可能还想使用它来处理单个字符单词:
string output = Regex.Replace(input, "(?<!^)_?([A-Z])", " $1");
Run Code Online (Sandbox Code Playgroud)
下划线:
string inputString = "This_Is_An_Input_String";
string resultString = inputString.Replace('_', ' ');
Run Code Online (Sandbox Code Playgroud)
首都:
string inputString = "ThisIsAnInputString";
//this will put a space before all capitals that are preceded by a lowercase character
string resultString = Regex.Replace(inputString, @"([a-z])([A-Z])", "$1 $2");
Run Code Online (Sandbox Code Playgroud)
对于输入类型:ThisIsAnInputString
string input1 = "ThisIsAnInputString";
StringBuilder builder = new StringBuilder();
foreach (char c in input1)
{
if (Char.IsUpper(c))
{
builder.Append(' ');
builder.Append(c);
}
else
{
builder.Append(c);
}
}
string output = builder.ToString().Trim();
Run Code Online (Sandbox Code Playgroud)
对于输入类型:This_Is_An_Input_String
string input2 = "This_Is_An_Input_String";
string output = Regex.Replace(input2, "_([A-Z])", " $1");
Run Code Online (Sandbox Code Playgroud)