Как разделить строку по числу или цифре

100
16 июня 2019, 13:30

Есть строка с предложением, например "В неделе 7 дней". Как разделить строку по этой цифре на "В неделе " и " дней" если за ранее не известно какая это будет цифра? Хотел попробовать через .Split(), но не понятно что должно быть в скобках.

Answer 1

Метод Split принимает так же массив, каждый элемент которого, порежет строчку.

если у вас в тексте встречаются только цифры до 10, то можно так :

var input = "В неделе 7 дней";
var t1 = input.Split("0123456789".ToCharArray());

если же могут встетиться любые числа, то лучше использовать Regex :

var input = "В неделе 7 дней";
var t2 = Regex.Split(input, "-?[0-9]+");
Answer 2

Можно разделить по регулярному выражению Regex.Split, где вторым параметром можно передать регулярку.

Вот тут даже пример есть как раз по вашему вопросу.

Answer 3
var date = "В неделе 7 дней";
var firstDigitValue = date.FirstOrDefault(x => Char.IsDigit(x));
var lastDigitValue = date.LastOrDefault(x => Char.IsDigit(x));
var weekPart = date.Substring(0, firstDigitValue);
var dayPart = date.Substring(lastDigitValue, date.Length);

Уверен что это далеко не лучший результат но думаю что так должно сработать.

READ ALSO
Пример необходимости Interlocked

Пример необходимости Interlocked

Подскажите, пожалуйста, пример когда необходимо использовать класс Interlocked (желательно код)То есть не простые фразы из книг о необходимости...

120
как сделать запрос modbus

как сделать запрос modbus

Как сделать запрос используя это: github

106
Как исправить конфликт BringIntoView и e.Handled?

Как исправить конфликт BringIntoView и e.Handled?

Не работает автопрокрутка (вертикальная) при отключеном автосдвиге(горизонтальной прокрутки при выделении с длинным названием item) горизонтальной...

103
Что за оператор ^=

Что за оператор ^=

Привествую, недавно увидел такой оператор ^=, но так и не нашел что он делает, применялся он к int, знаю что ^ это ислючения, но ^= да еще и для intЧТо...

110