The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Регулярные выражения"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (JavaScript)
Изначальное сообщение [ Отслеживать ]

"Регулярные выражения"  +/
Сообщение от antiwindows (ok) on 22-Сен-15, 17:34 
с помощью регулярных выражений надо вытащить из исходного кода название продукта. Это то что стоит в ковычках после слова 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>
Но это выражение не работает. Помогите кто может!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Регулярные выражения"  +/
Сообщение от Аноним (??) on 22-Сен-15, 19:45 
>[оверквотинг удален]
> то что стоит в ковычках после слова 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>
> Но это выражение не работает. Помогите кто может!

/ title=\"(.+)\" href/
Это если после title всегда идёт href, конечно.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Регулярные выражения"  +/
Сообщение от eRIC (ok) on 23-Сен-15, 08:43 
> / title=\"(.+)\" href/
> Это если после title всегда идёт href, конечно.

проще будет / title=\"(.+)\" /

афтору https://regex101.com/ в помощь

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Регулярные выражения"  +/
Сообщение от Аноним (??) on 23-Сен-15, 11:30 
>> / title=\"(.+)\" href/
>> Это если после title всегда идёт href, конечно.
> проще будет / title=\"(.+)\" /
> афтору https://regex101.com/ в помощь

Не пойдёт, если регулярка "жадная" - см ниже.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Регулярные выражения"  +/
Сообщение от Andrey Mitrofanov on 23-Сен-15, 19:33 
>> проще будет / title=\"(.+)\" /
> Не пойдёт, если регулярка "жадная" - см ниже.

Как дети малые,

/title=\"([^\"]+)\"/

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Регулярные выражения"  +/
Сообщение от antiwindows (ok) on 24-Сен-15, 12:00 
>>> проще будет / title=\"(.+)\" /
>> Не пойдёт, если регулярка "жадная" - см ниже.
> Как дети малые,
> /title=\"([^\"]+)\"/

Andrey Mitrofanov, благодарю! регулярка работает идеально!!!

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "Регулярные выражения"  +/
Сообщение от antiwindows (ok) on 24-Сен-15, 11:57 
>>> / title=\"(.+)\" href/
>>> Это если после title всегда идёт href, конечно.
>> проще будет / title=\"(.+)\" /
>> афтору https://regex101.com/ в помощь
> Не пойдёт, если регулярка "жадная" - см ниже.

работает, но действительно жадная ...очень-очень жадная )) Находит название и ссылку, но прихватывает ещё море мусора из исходника, который стоит после ссылки (не буду кодом засорять тему - пара страниц)


Аноним, благодарю за ссылку на regex101, потестю. Сейчас пользуюсь http://regexpal.com/

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

2. "Регулярные выражения"  +/
Сообщение от Аноним (??) on 22-Сен-15, 19:49 
>[оверквотинг удален]
> то что стоит в ковычках после слова 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>
> Но это выражение не работает. Помогите кто может!

Можно так - "нежадное" выражение (синтаксис perl):
/ title=\"(.+?)\"/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Регулярные выражения"  +/
Сообщение от antiwindows (ok) on 24-Сен-15, 12:04 
>>[оверквотинг удален]
> Можно так - "нежадное" выражение (синтаксис perl):
> / title=\"(.+?)\"/

Аноним, премного благодарен! Ваша регулярка тоже работает идеально!!!  

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру