当数字后面有字母时,我想拆分字符串,但又不要摆脱数字本身。例如,ABC123CW23F1应该输出为ABC123,CW23和F1。我尝试使用String.Spilt
string testString = "ABC123CW23F1";
Console.WriteLine(testString);
string[] new_String = testString.Split(new char[] { '0', '1', '2', '3' });
for (int i = 0; i < new_String.Length; i++)
{
Console.WriteLine(new_String[i]);
}
但是这会输出ABC一些空行,然后CW然后一些空行,然后是F。我该怎么做呢?请帮忙。谢谢
答案 0 :(得分:4)
您的预期输出表明,您希望在数字开头和字母继续出现时进行拆分。您可以使用以下环视正则表达式进行拆分:
(?<=\d)(?=[A-Z])
这是一个代码示例:
string str = "A4HM23D9";
string[] split = Regex.Split(str, @"(?<=\d)(?=[A-Z])");
Console.WriteLine(split[0] + " " + split[1] + " " + split[2]);
A4 HM23 D9