Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему неправильно работает регулярное выражение / 8 сообщений из 8, страница 1 из 1
17.07.2014, 22:14
    #38699734
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
Написал вот такое регулярное выражение для выделения атрибута src тега img:
(?<=<img\s+.*src\s*=\s*[""''])[^""'']+(?=[""''].*/>)")

Проверяю его вот здесь: http://sharpdev.ru/Regex/Sharp - показывает, что выражение составлено правильно. И действительно, выделяется содержимое нужного атрибута нужного тега, но в реале почему-то захватываются и атрибут src тега iframe. В чём может быть дело?
...
Рейтинг: 0 / 0
17.07.2014, 22:35
    #38699743
gandjustas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
maxapet,

в жадности...
шаблон .* кушает любое количество любых символов. соответственно в разметке <img src=".."/><iframe src="..." /> вполне успешно матчится второй src.
...
Рейтинг: 0 / 0
17.07.2014, 22:36
    #38699744
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
в "жадном" квантификаторе, видимо.
обрабатываемую строку увидеть можно?
...
Рейтинг: 0 / 0
18.07.2014, 05:52
    #38699853
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
Нашёл статью, где говорится, что в общем случае нельзя парсить HTML регулярными выражениями - слишком он сложен для них.
...
Рейтинг: 0 / 0
18.07.2014, 06:15
    #38699855
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
Исходная строка такого, примерно, вида: <img src="img.png" /><hr class="articleHr"/><p class="articleChapter" id="p8">Видео-гайд<p class="articleParagraph"><iframe width="640" height="360" src="//www.youtube.com/embed/83NQk9rm_QA?feature=player_detailpage" frameborder="0" allowfullscreen></iframe>
Действительно, дело в "жадном" квантификаторе. Приведённый фрагмент обрабатывается корректно, но если после <ifame> есть ещё тег <img>, то шаблон не работает. А как-то можно указать, что нужно именно ближайшее вхождение />?
...
Рейтинг: 0 / 0
18.07.2014, 08:43
    #38699905
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
...
Рейтинг: 0 / 0
20.07.2014, 14:44
    #38701233
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
Решил задачу, используя методы string. Всем спасибо.
...
Рейтинг: 0 / 0
20.07.2014, 15:50
    #38701247
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему неправильно работает регулярное выражение
Shocker.Pro, прочитал статью, спасибо. Не помогло.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему неправильно работает регулярное выражение / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]