#c#
#c#
Вопрос:
У меня есть строка даты, которая была введена неправильно, которую мне нужно исправить, и я хотел бы знать, могу ли я использовать RegEx.Replace для достижения этой цели.
строка даты в файле — 01.10-2016
Я хотел бы заменить «.» и «-» на «/»
Комментарии:
1. Это должно отражать детали:
(d{2}).(d{2})-(d{4})
2. Вот что я ввожу в MessageBox. Показать(Regex.Replace(«01.04-2016″, @»( d{2}).(d{2})-(d{4})», «/»)); но он возвращает только и «/»
3. Привет, есть ли что-нибудь, в чем вы все еще не уверены в этом вопросе?
Ответ №1:
Вы могли бы использовать это регулярное выражение: (d{2}).(d{2})-(d{4})
Разбивка:
d
— Соответствует числам{2}
и{4}
— Ожидает, что предыдущий шаблон (в нашем случаеd
) появится 2 и 4 раза соответственно.( )
— Создает группу захвата.
—.
имеет особое значение в регулярных выражениях, поэтому мы избежим его..
и-
являются статическими значениями, которые, как мы ожидаем, будут находиться между нашими группами захвата.
Итак, части нашего окончательного выражения:
(d{2})
— Сопоставьте и запишите любое двузначное число от 00 до 99.
— Сопоставить.
(d{2})
— Сопоставьте и запишите любое двузначное число от 00 до 99-
— Сопоставить-
(d{4})
— Сопоставьте и запишите любое четырехзначное число от 0000 до 9999
Теперь, чтобы фактически отформатировать дату так, как вы хотите, нам нужно взять данные, полученные этими 3 группами захвата, и выполнить замену. Вы можете ссылаться на них по их позиции в регулярном выражении, поэтому у нас есть $1
, $2
, и $3
.
var input = "01.10-2016";
var result = Regex.Replace(input, @"(d{2}).(d{2})-(d{4})", "$1/$2/$3");
Это должно вывести желаемые значения.
Комментарии:
1. Это то, что я искал — спасибо за вашу помощь