Автор Тема: Ещё по регулярным выражениям  (Прочитано 268 раз)

Serg

  • Newbie
  • *
  • Сообщений: 1
    • Просмотр профиля
Ещё по регулярным выражениям
« : Декабрь 22, 2017, 11:00:56 pm »
Привет! Тут уже есть такая тема, но она старая и предупреждение красного цвета сподвигло меня на новую.

Требуется в файлах в тексте к адресам страниц добавить ".html", и я бьюсь над этой задачей совершенно неуспешно...
 Прошу помощи в составлении регулярного выражения.
Конкретнее. все ссылки вида <a href="/cat/12798-desat-dva-tri">тут текст...
нужно изменить на <a href="/cat/12798-desat-dva-tri.html">тут текст...
Но есть и такие ссылки <a href="/cat-gor/sto-pitsot">тут текст...
 или <a href="/gor-katr/gorod.page=1">тут текст...
Возможно ли такое преобразование?

P.S. Добавлю, что просто замена "> на .html"> не пройдет, т.к. есть куча таких символов в тексте, коих не нужно касаться.
P.P.S. Пиво (\d+) с меня.
« Последнее редактирование: Декабрь 22, 2017, 11:16:34 pm от Serg »

admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
Re: Ещё по регулярным выражениям
« Ответ #1 : Март 15, 2018, 11:36:54 am »
Что найти (регулярное выражение):
<a href="([^?"]*)([^"]*)"

Заменить на:
<a href="$1.html$2"

parad0x

  • Newbie
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Ещё по регулярным выражениям
« Ответ #2 : Апрель 17, 2018, 07:28:07 am »
Добрый день!
Дабы не плодить темы по регулярным выражениям, отпишусь здесь, с позволения автора.
Нужна помощь с удалением фрагмента xml-файла:
<message>
<area>
текст и различные <тэги>
</area>
<area>
текст 2 и различные <тэги>
</area>
</message>
Из этого файла нужно удалить второй фрагмент <area> текст 2 и различные <тэги></area>. Пытались создавать что-то подобное .*?(<area>.*?</area>).*   но uvFilesCorrector зависал на этом задании. Помогите, пожалуйста, или хотя бы в какую сторону смотреть? Спасибо.

admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
Re: Ещё по регулярным выражениям
« Ответ #3 : Апрель 17, 2018, 11:38:05 am »
Если правильно понял задачу.

Что искать (регулярное выражение):
(<area>.*)(<area>.*?</area>)

На что заменять:
$1