Как я могу разделить строку, такую как "Mar10" на "Mar" и "10" в С#? Формат строки всегда будет буквой и числом, поэтому я могу использовать первый экземпляр числа в качестве индикатора для разбиения строки.
Как разбить строку на С# на основе букв и цифр
Ответ 1
Вы можете сделать это:
var match = Regex.Match(yourString, "(\w+)(\d+)");
var month = match.Groups[0].Value;
var day = int.Parse(match.Groups[1].Value);
Ответ 2
Вы не говорите это напрямую, но из вашего примера кажется, что вы просто пытаетесь разобрать дату.
Если это правда, как насчет этого решения:
DateTime date;
if(DateTime.TryParseExact("Mar10", "MMMdd", new CultureInfo("en-US"), DateTimeStyles.None, out date))
{
Console.WriteLine(date.Month);
Console.WriteLine(date.Day);
}
Ответ 3
char[] array = "Mar10".ToCharArray();
int index = 0;
for(int i=0;i<array.Length;i++)
{
if (Char.IsNumber(array[i]){
index = i;
break;
}
}
Указатель укажет позицию разделения.
Ответ 4
var match = Regex.Match(yourString, "([|A-Z|a-z| ]*)([\d]*)");
var month = match.Groups[1].Value;
var day = int.Parse(match.Groups[2].Value);
Я попробовал ответить Konrad выше, но это не совсем сработало, когда я ввел его в RegexPlanet. Также Groups[0
] возвращает целую строку Mar10
. Вы хотите начать с Groups[1]
, который должен возвращать Mar
и Groups[2]
должен возвращать 10
.