Помогите с preg_match

freeek

Новичок
Автор оригинала: Nick Mitin
freeek

Я думаю, что топикстартеру лучше все-таки разобраться с жадностью, чем использовать модификатор U.
нет, я не спорю с этим
если парсить доки и вообще все что угодно
вопрос жадности, вернее остсутствие понятия о нем, может здорого усложнить жизнь

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

а так же паре статей с клуба
regexp_1
regexp_2
 

Adelf

Administrator
Команда форума
3. Все три варианта рабочие по одной простой причине. в HTML документе только один тег <title>, более есть только один тег <time> который начинается на ti (см. первый пункт), который ввели в HTML5, соответственно его еще никто не пользует и вряд-ли будет.
А не проще сделать вариант, который будет работать всегда?

P.S. Все три варианта кстати неправильные. У тегов бывают атрибуты еще. Понятно что у title врядли ктото поставит атрибут, но это не запрещено.
 

freeek

Новичок
верно,

чтоб дать коректный ответ, нужен полный вопрос
пример был дан, на него сделали регу

ее нужно расценивать не как окончательный вариант, а как платформа для дальейшей модификации при тех или иных условиях
 

Nick Mitin

Новичок
Adelf

Все верно.

Если делать fail-safe систему, то надо учесть еще очень много вариатнов.

Меня просто крайне возмутило поведение тов. DiMA. Вместо того чтобы объяснить свою позицию он начал оскорблять людей, при этом сам не будучи на 100% правым.

freeek-же напротив потратил время на конструктивный ответ и полезные ссылки.
 

Adelf

Administrator
Команда форума
товарищ DiMA опытный :) и его ответ в принципе правильный. А излишняя нервозность.. ну это проблема всего форума :) я уже привык.
 

Beavis

Banned
Автор оригинала: Nick Mitin
DiMA

Нет уж, ответьте за свои слова. Расскажите-ка всем, что не с первыми двумя.
проверь первую регулярку на таком коде
Код:
<html>
<head>
<title>
   page title
</title>
</head>
 

DiMA

php.spb.ru
Команда форума
Nick Mitin

1. В задаче парсятся чужие хтмл, там может быть что угодно.

2. Надеятся на один тег тайтл - тупость:
<html>
<title>Новый сайт</title>
<!-- <title>Старый сайт</title> -->

3. Примеры с жадностью не рабочие. Т.е. в вырезку может попасть кусок кода вне тега.

4. НЕжадное выражение как только схвает первый кусок на этом успокоется. Сразу. Не будет искать ни возможных более длинных окончаний </title>, ни другие более длинные теги. У тебя же рег будет напрягаться с несколькими порядками рекурсии: попробовать поискать <title> со всех других позициях, попробовать найти окончание </title> так же везде.

5. Подобные вопросы обычно задают тупые домохозяйки. Но у них имеется в зачатном состоянии принцип аналогии. Поэтому в следующий раз домохозяйка будет искать ссылки <a> ... </a>, применив копипаст с решения, которые предложили с <title>. Обломается, естественно, и опять начнет дебаты. Применив мой вариант, копипаст прокатит и со ссылками, и со всеми остальными вариантами тегов или xml.


freeek

> ну пусть если надо ослабить жадность добавим U

Это еще один бред. Как показывает практика, имеет смысл иметь все выражения жадными, применяя нежадность только в нужных местах, т.к. это требует применять голову (могут быть неожиданные результаты).


Суть проблемы в том, что домохозяйки дают друг другу кривые советы и рады по уши этому. Но, на данном форуме это не прокатит. Задавать глупые вопросы - можно. Но весь бред с ответами будет осмеян.
 

freeek

Новичок
to DiMA

да ты не горячись
у каждого свой подход к решению вопроса, про добавку квалификатора это я к тому если мы парсим серию тегов и другими методами,
так как в этом случае твоя регулярка тебя не спасет, а схватит только первый вариант

а парсит каждый по разному

во-первых
был пример который нужно отработать, со всеми условиями которые к нему прилагались
я же не говорю что твой метод гавно, наоборот я сказал что твой метод уместней, в данном случае, но от этого понятия о жадности клафикатором у меня, по крайней мере у тех у кого оно есть не убавилось
если человеку тупо нужен чей то тайтл и он приводит пример и ему дают основу, этого достаточно, чтобы он понял и дальше действовал сам, а если лесть в дебри, то можно накодить целый короб, лишь бы выдернуть пару букв из этого тега и в оконцовке он будет бесполез, потому что цели у топикстартера возможно были другие


во-вторых
на то это и форум, что у людей возникают вопросы, и здесь в процессе можно найти решение или чему то научиться, а если ты профи и действительно в чем то разбираешься, вместо того чтобы брызгать слюной и фантазировать на тему домохозяек с членом в штанах, дал бы толковый и развернутый ответ, почему так, а не иначе


конечно огорчает, что из-за пустяшного вопроса накатали кило флуда
что это за клуб, если его участники чмырят друг другаи радуются этому
 

baev

‹°°¬•
Команда форума
Если бы ты был мастером в олимпиадном программировании, был бы лучшем на каком-нибудь Google code jam, с закрытыми глазами понимал и решал всего Кнута, то какие-то язвительные замечания, но по делу, могли бы ещё как-то восприниматься как адекватное поведение.
— мда, кажется осеннее обострение в этом году раньше началось…
 

Nick Mitin

Новичок
Автор оригинала: dimagolov
вот и жуй себе орбит или что ты там предпочитаешь, а не лезь со своими советами и обидами.
Только вашей экспертной оценки тут как раз не хватало, особенно хорошо, что она как раз по теме обсуждаемого вопроса.

Почему-то тут все тыкают незнакомым людям.
 

Breeze

goshogun
Команда форума
Партнер клуба
Почему-то тут все тыкают незнакомым людям
Как-то так в интернетах повелось изначально.
А тебе на форуме вежливость и политкорректность в первую очередь нужна или что?
 

Sirpredator

Новичок
preg_match('!<title>(.*?)</title>!is', $src, $matches);
echo $matches[1];

примерно так и не пошло по твоей схеме

текст в первом посте
 

DiMA

php.spb.ru
Команда форума
У меня - не схема. У меня - правильное решение. Столь примитивное, как и 2+2=4, не нуждающееся в доказательстве тем, кто не умеет считать. Разбирайся в говнокоде или приведи полный конечный, якобы неработающий, пример.
 

baev

‹°°¬•
Команда форума
Почему-то тут все тыкают незнакомым людям.
— чего Вы врёте-то?
Найдите тут хоть одно сообщение, где я «тыкаю» незнакомому человеку.
 

Sirpredator

Новичок
to DiMA

спасибо за то что вы самый умный, и ни хрена не умеете общаться и как следствие нормально пояснить

Столь примитивное, как и 2+2=4 - в вашем примитиве все настолько примитивно что непонятно чем оно примитивно для не примитивного человека.

ДЛЯ ВСЕХ оставшихся

Спасибо что есть те кому с огромным опытом не лень иногда спускаться до конкретных примеров понятным начинающим и запутывавшимся.

P.S.
тему прошу закрыть
 
Сверху