Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск в строке с помощью рег. выр. 
:(
    Опции темы
werd
  Дата 30.7.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



Вопрос такой

1. есть сайт со своим текстовым содержимым (HTML) - качаем файл с сайта и ищем в нём все ссылки,
по формату {http://[^"|'|\s]*}
тоесть с начала ссылки до её конца.

делается так
Код

def get_http(str)
  if str =~ %r{http://[^"|'|\s]*}
    "#{$&}"
  else
    "no match"
  end
end


puts get_http(p) 


при этом получается только один линк, тоесть первый который находит функция.

Мне нужно вытащить все линки с файла,каким образом разумно запустить цикл поиска в строке?

Это сообщение отредактировал(а) werd - 30.7.2008, 11:15
PM MAIL   Вверх
doomik
Дата 30.7.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

Репутация: нет
Всего: 15



Самому когда-то пригодилось:
Код

text = File.readlines(ARGV[0]) # получаем имя файла с командной строки
text = text.join() # получаем одну большую строку
text = text.split(/\"|\'/) # сплит на каждом ' or "
text.each do # для каждого элемента в массиве проверяем 
    |element|
    if element.include?('http://') # если это ссылка
        puts element 
    end
end


Кстати а где подсветка кода на Ruby или её не когда небыло ? O_o


--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
werd
Дата 30.7.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.7.2008

Репутация: нет
Всего: нет



да вроде нету её тут 

так вот сделал в конце вот так вот
Код

a=  p.scan(%r{http://[^"|'|\s]*}).to_a

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.