Роберт
Аналитик
Замена регулярным выражением, но с одним исключением
Никак не могу придумать - может кто-то подскажет?
Надо пройтись по тексту и выделить все даты.
Тоесть , если в тексте есть "aaaaa 12.08.1999 sssss" надо заменть на "aaaaa <b>01.08.1999</b> sssss".
Задача вроде элементарная - составляю регулярное выражение , которое находит все даты (они ведь могут писаться с одной или двумя цифрами в дне и с четырмя или двумя цифрами в годе) , и дальке через preg_replace() меняю на туже дату , только обромлённую тегами <b>.
Но в задачу вкралось одно исключение - дата "10.10.2000" - НЕ ДОЛЖЖНА БЫТЬ ВЫДЕЛЕНА!
Есть ли какая-то возможность задать такое исключение? Или как-то проверять дополнительно самому после совпадения регулятного выражение но перед заменой?
У меня пока что есть только две идеи как это делать:
1) перед вышеописанной заменой вначале заменить 10.10.2000 на какой-нибудь 10--10--2000 , а после того как все даты будут выделены , заменть обратно 10--10--2000 на 10.10.2000.
2) Вначале меняю всё как и было описано ранее , а потом ищу по всему тексту <b>10.10.2000</b> и меняю его обратно на 10.10.2000.
Мне кажется - оба эти варианты очень неудобны. Может есть какая-то другая возможность?
Никак не могу придумать - может кто-то подскажет?
Надо пройтись по тексту и выделить все даты.
Тоесть , если в тексте есть "aaaaa 12.08.1999 sssss" надо заменть на "aaaaa <b>01.08.1999</b> sssss".
Задача вроде элементарная - составляю регулярное выражение , которое находит все даты (они ведь могут писаться с одной или двумя цифрами в дне и с четырмя или двумя цифрами в годе) , и дальке через preg_replace() меняю на туже дату , только обромлённую тегами <b>.
Но в задачу вкралось одно исключение - дата "10.10.2000" - НЕ ДОЛЖЖНА БЫТЬ ВЫДЕЛЕНА!
Есть ли какая-то возможность задать такое исключение? Или как-то проверять дополнительно самому после совпадения регулятного выражение но перед заменой?
У меня пока что есть только две идеи как это делать:
1) перед вышеописанной заменой вначале заменить 10.10.2000 на какой-нибудь 10--10--2000 , а после того как все даты будут выделены , заменть обратно 10--10--2000 на 10.10.2000.
2) Вначале меняю всё как и было описано ранее , а потом ищу по всему тексту <b>10.10.2000</b> и меняю его обратно на 10.10.2000.
Мне кажется - оба эти варианты очень неудобны. Может есть какая-то другая возможность?
