Регулярные выражения
с помощью регулярных выражений надо вытащить из исходного кода название продукта. Это то что стоит в ковычках после слова 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&qid=1442901446&sr=8-1&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> Но это выражение не работает. Помогите кто может! :help: |
antiwindows,
а зачем регулярка? |
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&qid=1442901446&sr=8-1&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> |
Благодарю за быстрый ответ, но необходимо именно регулярное выражение. Результат должен выдаваться построчно.
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"); |
Цитата:
|
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&qid=1442901446&sr=8-1&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); |
Спасибо за идею, она мне пригодится, если буду решать эту задачу в чистом яваскрипте, но на данный момент нужна именно регулярка
|
/\btitle\s*=\s*"(.*?)"/ |
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> ? |
Решение найдено. Несколько регулярок, которые выдают то что нужно:
<a[^>]+title="([^"]+)" title=\"(.+?)\"' title=\"([^\"]+)\" огромное спасибо всем! |
Часовой пояс GMT +3, время: 21:29. |