21.09.2019, 13:20 [+3 UTC]
в нашей команде: 3 833 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
12.09.2019, 08:17

Последний вопрос:
21.09.2019, 03:42
Всего: 150360

Последний ответ:
21.09.2019, 10:10
Всего: 259042

Последняя рассылка:
21.09.2019, 11:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
30.09.2009, 16:44 »
Андрей Кузнецов aka Dr_Andrew
Спасибо, помогло! Правда, обошёлся более простой командой: g++ TMainForm.cpp TProgramme.cpp main.cpp -o HelloWindow [вопрос № 172756, ответ № 254857]
13.12.2010, 15:21 »
Савенков М.В.
Хорошо и подробно все расписано + быстро ответили. Мне понравилось smile [вопрос № 181260, ответ № 264702]
19.12.2011, 14:03 »
Андрей Валерьевич
Советы, в большинстве своем, грамотные, а повторенье мать ученья.

РАЗДЕЛ [неизвестная рассылка]

[администратор рассылки: [неизвестный]]

Лучшие эксперты в этом разделе


Перейти к консультации №:
 

Консультация онлайн # 143761
Раздел: [неизвестная рассылка]
Автор вопроса: Алексей Юрьевич М.
Отправлена: 12.09.2008, 19:27
Поступило ответов: 0

Здравствуйте!
Подскажите пожалуйста как решить следующую задачу (php, preg_replace).
Есть некий набор урлов (приложение 1)
Как с помощью регексов поставить ./f.php? перед http:// у урла, в котором есть текст replace.ru или replace2.ru, т.е. получить приложение 2, а у которых нет ранее упомянутого текста убрать все до http%3a (получить приложение 3)?
И можно-ли это сделать одним регексом?

Приложение:

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 143761
-OC-

# 1

= общий = | 13.09.2008, 10:23

А что у вас вызывает затруднения?
Задача достаточно тривиальная smile
Теоретически сделать это одним регэкспом можно, но вряд ли это будет проще. Лучше разбить задачу на 2 части.
1. Ищем совпадение с replace.ru или replace2.ru

  replace\.ru|replace2\.ru  
, если оно есть то делаем контактацию строк, если нет совпадения - переходим к п.2
2. Удаляем часть сторки начинающуюся с http и до следующего http.
  ^(http[-a-z0-9_&?=+,.!/~*'%]*)http/i  

Вуаля.
PS за абсолютную точность регэкспов( последнего) не ручаюсь. Возможно в php не будет работать ибо реализация механизма регулярных выражений там уж очень "убогая" smile и может потребоваться модификация

неизвестный

# 2

= общий = | 13.09.2008, 10:50

Спасибо!
С первым разобрался.
Однако со вторым не понял...
Пытаюсь выполнить вторую задачу так:

echo preg_replace("/(?<!f\.php)\?http:\/\/.*url\=(http.*?<)/",rawurldecode("\\1"),$txt);

Но таким регексом почему-то не получается.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14704 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35