Помогите с регуляркой плз.

Статус
В этой теме нельзя размещать новые ответы.
Получилось, благодарю.
Еще вопрос есть.
Находятся таким образом ссылки, но их бывает несколько одинаковых
То есть допустим
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
хотелось бы избавиться от дублей
Я конечно понимаю что лечге всего в самом скрипте который принимает данные поставить удаление дублей...
но все таки, а есть ли такая возможность в самой регулярке это сделать?
То есть она находит удовлетворяющий условиям текст, а следующий точно такой же - нет.
Действительно, лучше будет убрать дубли в скрипте, но регуляркой тоже можно
Код:
{(http://pamparam\.pam\.ru/user/\?uid=\d++)(?!.*\1(?:\D|$))}s
 
bertolai, а на одной странице много ссылок одинаковых? А то можно было бы использовать модификатор жадности U - тогда искалась бы только первая попавшаяся ссылка и дублей точно не было бы
Нет, их всегда только две штуки.Наверное модификатор жадности подойдет тогда?
Гораздо проще очистить массив от дублей используя функцию *** скрытое содержание ***
К сожалению имею возможность менять только регулярку.
Действительно, лучше будет убрать дубли в скрипте, но регуляркой тоже можно
Код:
{(http://pamparam\.pam\.ru/user/\?uid=\d++)(?!.*\1(?:\D|$))}s
Попробовал этот вариант. Ничего не находит, наверное гдето ошибка?
 
Нет, их всегда только две штуки.Наверное модификатор жадности подойдет тогда?
К сожалению имею возможность менять только регулярку.
Попробовал этот вариант. Ничего не находит, наверное гдето ошибка?

Регулярка рабочая. Или вы ее неправильно применяете, или ваш диалект регулярных выражений не понимает некоторые опции.
 
Хм...
ну вот же,
подставляю то что до этого написали:
(http:\/\/pamparam\.pampam\.ru\/user\/\?uid=\d+)
Все получается прекрасно, за исключением того что скрипт находит по две ссылки, то есть:
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
........
А вот подставляю, то что ты написал:
{(http://pamparam\.pampam\.ru/user/\?uid=\d++)(?!.*\1(?:\D|$))}s
Ничего не находит скрипт :((((
Скрипт на перле.
 
Perl 5.8? Тогда небольшое изменение. И вставлять правильно так - пример -
Код:
$_ = <<EOF;
http://pamparam.pampam.ru/user/?uid=3980134
http://pamparam.pampam.ru/user/?uid=3980134
http://pamparam.pampam.ru/user/?uid=8884345345
http://pamparam.pampam.ru/user/?uid=8884345345
EOF
$,="\n";
print m{(http://pamparam\.pampam\.ru/user/\?uid=(?>\d+))(?!.*\1(?:\D|$))}sg;
 
как я уже говорил, имею возможность только править регулярку.
одной строкой.
m{(http://pamparam\.pampam\.ru/user/\?uid=(?>\d+))(?!.*\1(?:\D|$))}sg
это вариант тоже к сожаленью ничего не нашел.
 
Почему?
Напиши строку кода с регуляркой.

Есть только поле, куда вбиваешь регулярку, по которой происходит парсинг.
поэтому могу менять только ее саму. что вобью то и будет искать.
Остального нет.
Ладно.
В принципе мой воспрос изначальный решен. Всем спасибо.
Надеюсь те регекпсы что были написанны в теме помогут не только мне :)
 
Может скрипт для PHP?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху