Я настраиваю систему для синтаксического анализа строки с очень указанным синтаксисом и исправления ошибок пользователя. Например, синтаксис требует даты в формате уу (без ведущих 0s) ч/д /, так что мне нужно сделать следующие замены:Intelligent RegEx Замена
- 10/01/13 -> 10/1/13
- 10/10/13 -> Без изменений
- 10/1/13 -> без изменений
- 01/10/13 -> 1/10/13
у меня есть много правил, как это по которой мне нужно найти порции строки и исправить эти части. Я могу использовать RegEx для определения того, что нужно легко исправлять. Для более легкого примера, я хочу найти CBUx[2-9]
, но тогда мне нужно заменить что-то вроде этого CBU x [2-9]
(пробелы вокруг x, если ему предшествует CBU и обозначается цифрой). Пример:
ввод текст: "ла CBUx3" совпадения: "CBUx3" заменить: "ЦБ х 3" выходного текст: "ли ЦБ х 3"
Возможно ли это? Обратите внимание, что я полностью знаю, что могу написать код, чтобы найти косые черты и цифры. Я специально пытаюсь сделать это с помощью «замены RegEx Registry». У меня есть много разных типов исправлений, которые я могу сопоставить с RegEx, и я хотел бы избежать написания конкретных процедур коррекции для каждого.
Что вы подразумеваете под интеллектуальным регулярным выражением? Вы хотите, чтобы вы объединили все правила в одном регулярном выражении? ** P.S. ** Я считаю, что хорошо написанное регулярное выражение всегда разумно! – jkshah
На каком языке вы используете? Кстати, любая система, которая думает, что m/d/yyyy «умна», вероятно, уже в беде. Лучше конвертировать из приходского, причудливого формата m/d/yyyy, используемого только в одной стране, в ISO yyyy/mm/dd или dd/mm/yyyy, как используется в остальном мире – Bohemian
«Интеллектуальный» изменяет замену , а не регулярное выражение. Дело в том, что я хочу, чтобы указать строку замены с помощью регулярного выражения. Отсюда и мои примеры. Независимо от того, нравится ли вам формат даты, который я вынужден использовать в этом экземпляре (я предпочитаю ISO), совершенно не имеет значения. –