У меня есть необычный проект, в котором мне нужно получить текст после второго последнего появления символа «\», эффективно предоставив мне последние два каталога в Следующий пример строки:Получить строку, которая следует за вторым последним вводом символа/строки
- D: \ Архив Каталог \ 2015-12-31 \ PM SerialNo_01
- D: \ Archive Directory \ 2016-01-01 \ SerialNo_02
- D: \ Directory \ Archive января 2016 \ SerialNo_03
Желаемый результат, соответственно:
- 2015-12-31 PM \ SerialNo_01
- 2016-01-01 \ SerialNo_02
- января 2016 \ SerialNo_03
Я хотел бы сделайте это как можно чище, и желательно в одной строке кода для каждой строки.
Этот вопрос отвечает мной после того, как вы ничего не обнаружили в Stack Overflow о том, чтобы найти второе-последнее вхождение (или, если на то пошло, любое N-ое вхождение в обратном направлении) строки или символа в строке в C#. Если сообщество выяснит, что этот вопрос дублируется или кажется, что это слишком непонятный случай, я готов его удалить.
Редактировать: Уточнено, что мне не нужно делать это как список строк; они будут запускаться по одному за раз. Я динамически добавляю их в качестве элементов управления переключателями в форму.
Если Вы заинтересованы в регулярном выражении, [ '\\ [^ \\] + \\ $' (*.)] (Https: // regex101.com/r/cB7cE4/1) с флагами 'gm'. – Tushar