Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

про regexp

0 views
Skip to first unread message

Evgeny Chevtaev

unread,
Aug 4, 2021, 12:01:03 AM8/4/21
to
Hi All!

Подскажите, граждане, как в сабжах приоритеты (или как оно по-умному
называется) делать?

Есть переменная с многострочным html, где вложенные div'ы:

<html>
Всякая хрень
<div>Почта: васян@домен</div>
<div>Телефон: 123</div>
Всякая хрень
</html>

Hадо почту выкорчевать. Делаю "$body =~ s/.*Почта:\s(.*)<\/div>/$1/", получаю
вырезку до последнего div. Как до первого оно делается? Помню, что на эту тему
тут пробегал научный труд, но не нашёл того письма.

With best regards,
Evgeny

Michael Dukelsky

unread,
Aug 4, 2021, 5:01:02 AM8/4/21
to
Привет, Evgeny!

04 August 2021 08:09, Evgeny Chevtaev послал(а) письмо к All:

EC> Подскажите, граждане, как в сабжах приоритеты (или как оно по-умному
EC> называется) делать?

EC> Есть переменная с многострочным html, где вложенные div'ы:

EC> <html>
EC> Всякая хрень
EC> <div>Почта: васян@домен</div>
EC> <div>Телефон: 123</div>
EC> Всякая хрень
EC> </html>

EC> Hадо почту выкорчевать. Делаю "$body =~ s/.*Почта:\s(.*)<\/div>/$1/",
EC> получаю вырезку до последнего div. Как до первого оно делается? Помню,
EC> что на эту тему тут пробегал научный труд, но не нашёл того письма.

Если ты хочешь получить ответ, надо постараться корректно задать вопрос, так
чтобы было понятно, чего ты хочешь. Что такое "почту выкорчевать"? Вырезать из
многострочного значения слово "Почта", сделав результатом прежнее значение без
этого слова? Получить в качестве результата адрес электронной почты?

Вот ответ на последний вопрос:

$body =~ /.*Почта:\s(.*)<\/div>/;
print "email=$1\n";

З.Ы. Голдед искажает регулярные выражения. Чтобы увидеть регэксп без искажений,
надо нажать Alt-Q

Желаю успехов, Evgeny!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru

Alexey Vissarionov

unread,
Aug 4, 2021, 6:01:02 AM8/4/21
to
Доброго времени суток, Evgeny!
04 Aug 2021 08:09:38, ты -> All:

EC> Подскажите, граждане, как в сабжах приоритеты (или как оно
EC> по-умному называется) делать? Есть переменная с многострочным
EC> html, где вложенные div'ы:
EC> <html>
EC> Всякая хрень
EC> <div>Почта: васян@домен</div>
EC> <div>Телефон: 123</div>
EC> Всякая хрень
EC> </html>
EC> Hадо почту выкорчевать. Делаю "$body =~ s/.*Почта:\s(.*)<\/div>/$1/",
EC> получаю вырезку до последнего div. Как до первого оно делается?
EC> Помню, что на эту тему тут пробегал научный труд, но не нашёл того
EC> письма.

Как написано, так и работает... Напишешь вместо .* хотя бы [^<]+ - будет
работать по-другому.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Лотерея (сущ.): форма налога на незнание теории вероятности

Stas Mishchenkov

unread,
Aug 5, 2021, 7:01:02 AM8/5/21
to
Hi, Michael!

04 авг 21 11:15, Michael Dukelsky -> Evgeny Chevtaev:

MD> Вот ответ на последний вопрос:

MD> $body =~ /.*Почта:\s(.*)<\/div>/;
MD> print "email=$1\n";

$body =~ s/.*Почта:\s(.+?)<\/div>/$1/;

Have nice nights.
Stas Mishchenkov.

Evgeny Chevtaev

unread,
Aug 5, 2021, 8:01:03 AM8/5/21
to
Hi Stas!

Thursday August 05 2021 13:09, Stas Mishchenkov wrote to Michael Dukelsky:

MD>> Вот ответ на последний вопрос:
MD>> $body =~ /.*Почта:\s(.*)<\/div>/;
MD>> print "email=$1\n";
SM> $body =~ s/.*Почта:\s(.+?)<\/div>/$1/;

Оно! Благодарствую!

With best regards,
Evgeny

Viktor V. Kudlak

unread,
Sep 16, 2021, 3:01:02 PM9/16/21
to
Hello Evgeny.

04 Aug 21 08:09, you wrote to all:

EC> Подскажите, граждане, как в сабжах приоритеты (или как оно по-умному
EC> называется) делать?

EC> Есть переменная с многострочным html, где вложенные div'ы:

EC> <html>
EC> Всякая хрень
EC> <div>Почта: васян@домен</div>
EC> <div>Телефон: 123</div>
EC> Всякая хрень
EC> </html>

EC> Hадо почту выкорчевать. Делаю "$body =~ s/.*Почта:\s(.*)<\/div>/$1/",
EC> получаю вырезку до последнего div. Как до первого оно делается? Помню,
EC> что на эту тему тут пробегал научный труд, но не нашёл того письма.

Отрегулируй жадность
наапример поставь вопросик после .*
гуглится на раз-два, старый избитый вопрос

Viktor

0 new messages