Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2015, 12:55
Интересующийся
Отправить личное сообщение для antiwindows Посмотреть профиль Найти все сообщения от antiwindows
 
Регистрация: 22.09.2015
Сообщений: 11

Регулярные выражения
с помощью регулярных выражений надо вытащить из исходного кода название продукта. Это то что стоит в ковычках после слова title (т.е. "Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz"):

<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&amp;qid=1442901446&amp;sr=8-1&amp;keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>

Примерно выражение выглядит так:
<a class=\"[^\"]*title\"(.*?)</a>
Но это выражение не работает. Помогите кто может!
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2015, 13:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

antiwindows,
а зачем регулярка?
Ответить с цитированием
  #3 (permalink)  
Старый 22.09.2015, 13:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

antiwindows,
<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&amp;qid=1442901446&amp;sr=8-1&amp;keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>
<script>
alert(document.links[0].title);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 22.09.2015, 13:20
Интересующийся
Отправить личное сообщение для antiwindows Посмотреть профиль Найти все сообщения от antiwindows
 
Регистрация: 22.09.2015
Сообщений: 11

Благодарю за быстрый ответ, но необходимо именно регулярное выражение. Результат должен выдаваться построчно.

var man_name = "Leitz";
var man_art_nr = "24230095";
var searchUrlAmazon = "http://www.amazon.de/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=";

var searchVar = encodeURI(man_name + " " + man_art_nr);

var amazonSite = loadURL(searchUrlAmazon + searchVar).replace(/\n/g,'').replace(/\r/g,'');
var amTitel = new RegExp('ЗДЕСЬ ДОЛЖНА СТОЯТЬ РЕГУЛЯРКА','g');
var match = amTitel.exec(amazonSite);

for (var i=0; i < 5; i++){
writeln('Titel: ' + match[1]);
fwrite(fh,'Titel: ' + match[1] + '\n');
match = amTitel.exec(amazonSite);
}

writeln("stop Titel");
writeln("\n");
Ответить с цитированием
  #5 (permalink)  
Старый 22.09.2015, 13:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от antiwindows
Результат должен выдаваться построчно.
не осилил ... в любом случае если вам нужно title ссылки нужды в регулярке нет.
Ответить с цитированием
  #6 (permalink)  
Старый 22.09.2015, 13:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

antiwindows,
var a = '<a class="a-link-normal s-access-detail-page a-text-normal" title="Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz" href="http://www.amazon.de/Leitz-24230095-Stehsammler-Hartpappe schwarz/dp/B0007OEHFS/ref=sr_1_1?ie=UTF8&amp;qid=1442901446&amp;sr=8-1&amp;keywords=Leitz+24230095"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">Leitz 24230095 Stehsammler, A4, Hartpappe, schwarz</h2></a>'
var div = document.createElement('div');
div.innerHTML = a;
alert(div.querySelector('a').title);
Ответить с цитированием
  #7 (permalink)  
Старый 22.09.2015, 14:23
Интересующийся
Отправить личное сообщение для antiwindows Посмотреть профиль Найти все сообщения от antiwindows
 
Регистрация: 22.09.2015
Сообщений: 11

Спасибо за идею, она мне пригодится, если буду решать эту задачу в чистом яваскрипте, но на данный момент нужна именно регулярка
Ответить с цитированием
  #8 (permalink)  
Старый 22.09.2015, 15:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

/\btitle\s*=\s*"(.*?)"/
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 22.09.2015, 17:13
Интересующийся
Отправить личное сообщение для antiwindows Посмотреть профиль Найти все сообщения от antiwindows
 
Регистрация: 22.09.2015
Сообщений: 11

Aetae, спасибо огромное! Но если задаю Вашу регулярку в эвалюаторе, то название находит. Если вставляю её как есть в свой код, то выдаёт ошибку:

Script Exception!
File: H:\svn\test\test.js
Line: 45
Pos : 0
Msg : [222] TypeError: match is null

Как я понимаю, необходимо ключевое слово по которому ведётся поиск по исходному коду. Есть возможность оформить эту (/\btitle\s*=\s*"(.*?)"/) регулярку как в примере:

<span class="a-size-base a-color-price s-price a-text-bold">EUR 5,50</span>
Регулярка для этого исходного кода:
<span class=\"[^\"]*s-price[^\"]*\"[^>]*>(.*?)</span>

?

Последний раз редактировалось antiwindows, 22.09.2015 в 17:15.
Ответить с цитированием
  #10 (permalink)  
Старый 24.09.2015, 12:21
Интересующийся
Отправить личное сообщение для antiwindows Посмотреть профиль Найти все сообщения от antiwindows
 
Регистрация: 22.09.2015
Сообщений: 11

Решение найдено. Несколько регулярок, которые выдают то что нужно:
<a[^>]+title="([^"]+)"
title=\"(.+?)\"'
title=\"([^\"]+)\"

огромное спасибо всем!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения zoinx2010 Общие вопросы Javascript 4 07.02.2014 16:37
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 13:14
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35