Уборка плохо сформированных дат - с помощью RegEx? - PullRequest
0 голосов
/ 18 июля 2011

Я анализирую некоторые данные из сторонних источников, к сожалению, некоторые из них плохо сформированы. Каков наилучший способ очистки / дезинфекции их?

* 1005 Е.Г. *

Среда 20 июля -> Среда 20 июля

Вторник, 20 июля -> Вторник, 20 июля

как только я получу их, я просто конвертирую их, используя

DateTime myDateTime = DateTime.Parse("Wednesday 20 July");

Как лучше всего преобразовать эти искаженные даты?

У меня была игра с RegEx, но я не эксперт

Regex regEx = new Regex("[0-9][a-zA-Z]");
Match match = Regex.Match("Wednesday 20July", "[0-9][a-zA-Z]");

Я не был уверен, как вставить пробел в правильное место, когда нашел совпадение.

1 Ответ

2 голосов
/ 18 июля 2011

Вы можете вставить пробел между цифрой и буквой (или между буквой и цифрой) следующим образом:

resultString = Regex.Replace(subjectString, @"(?<=\d)(?=\p{L})|(?<=\p{L})(?=\d)", " ");

(?<=\d) проверяет, является ли предыдущий символ цифрой.

(?=\p{L}) проверяет, является ли следующий символ буквой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...