Что нового

[Данные, строки] Помогите выцепить из текста все имена jpg файлов и занести их в массив.

vaf

Новичок
Сообщения
186
Репутация
2
Как бы поэлегантнее выцепить все имена jpg файлов и занести их в массив. Пример текста ниже.

Код:
2012-10-23 17:51:00;<a href="http://sitename/uploads/xbe85bugkfc.jpg"><img class="alignright" title="xbe85bugkfc.jpg" src="/uploads/xbe85bugkfc.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/rgp0jg1fuoc.jpg"><img class="alignright" title="rgp0jg1fuoc.jpg" src="/uploads/rgp0jg1fuoc.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/kvzy1qqru6m.jpg"><img class="alignright" title="kvzy1qqru6m.jpg" src="/uploads/kvzy1qqru6m.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/qw1hnoz_tps.jpg"><img class="alignright" title="qw1hnoz_tps.jpg" src="/uploads/qw1hnoz_tps.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/o8kf-ixiu7g.jpg"><img class="alignright" title="o8kf-ixiu7g.jpg" src="/uploads/o8kf-ixiu7g.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/mlborywsdt4.jpg"><img class="alignright" title="mlborywsdt4.jpg" src="/uploads/mlborywsdt4.jpg" alt="" width="width_9" /></a>Длинный текст
.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
vaf,
Попробуйте так.
Код:
#include <Array.au3>

$sText = '2012-10-23 17:51:00;<a href="http://sitename/uploads/xbe85bugkfc.jpg"><img class="alignright" title="xbe85bugkfc.jpg" src="/uploads/xbe85bugkfc.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/rgp0jg1fuoc.jpg"><img class="alignright" title="rgp0jg1fuoc.jpg" src="/uploads/rgp0jg1fuoc.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/kvzy1qqru6m.jpg"><img class="alignright" title="kvzy1qqru6m.jpg" src="/uploads/kvzy1qqru6m.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/qw1hnoz_tps.jpg"><img class="alignright" title="qw1hnoz_tps.jpg" src="/uploads/qw1hnoz_tps.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/o8kf-ixiu7g.jpg"><img class="alignright" title="o8kf-ixiu7g.jpg" src="/uploads/o8kf-ixiu7g.jpg" alt="" width="width_9" /></a><a href="http://sitename/uploads/mlborywsdt4.jpg"><img class="alignright" title="mlborywsdt4.jpg" src="/uploads/mlborywsdt4.jpg" alt="" width="width_9" /></a>Длинный текст
.'
$aJpg = StringRegExp($sText, '(?i)href.+?\W(\w+?\.jpg)', 3)
_ArrayDisplay($aJpg, 'href')
$aJpg1 = StringRegExp($sText, '(?i)title.+?\W(\w+?\.jpg)', 3)
_ArrayDisplay($aJpg1, 'title')
$aJpg2 = StringRegExp($sText, '(?i)src.+?\W(\w+?\.jpg)', 3)
_ArrayDisplay($aJpg2, 'src')
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
запиши свой код в текстовый документ 1.txt
потом выполни код
Код:
#include <array.au3>
#include <String.au3>
$1 = _StringBetween(FileRead(@ScriptDir&'\1.txt'),'title="','" src')
_ArrayDisplay($1)
$2 = _StringBetween(FileRead(@ScriptDir&'\1.txt'),'uploads/','"')
_ArrayDisplay($2)

весьма грубо, конечно :smile:
 
Автор
V

vaf

Новичок
Сообщения
186
Репутация
2
Не очень разбираюсь в регулярных выражениях, а если в имени файла есть символы ?
например "aocxnn7r-py.jpg"
выдает как "py.jpg"
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
ты кому вопрос задал?
вот измененный вариант с внесением в один массив
Код:
#include <array.au3>
#include <String.au3>
$1 = _StringBetween(FileRead(@ScriptDir&'\1.txt'),'title="','" src')
$2 = _StringBetween(FileRead(@ScriptDir&'\1.txt'),'uploads/','"')
_ArrayConcatenate($1,$2)
_ArrayDisplay($1)

в примерах возвращает полное имя
 
Автор
V

vaf

Новичок
Сообщения
186
Репутация
2
Да, твой пример помог, как раз то что нужно
 
Верх