regexp

а как с помощью regexp взять текст, заключённый между 2-мя строками?
что-то вроде
/str1([.\n]+)str2/
?
такие дела.
Это где - в perle или php или что-то другое?
junqed
Это где - в perle или php или что-то другое?

ну, например, в перле. я так понимаю, что разницы большой нет. всё достаточно стандартизовано. или я не прав?
такие дела.
cucullus
ну, например, в перле. я так понимаю, что разницы большой нет. всё достаточно стандартизовано. или я не прав?
Знаю, что в PHP надо поставить модификатор m, ну а там уже будет скорее всего твой регексп

вот из мануала к PHP

m (PCRE_MULTILINE)

По умолчанию PCRE обрабатывает данные как однострочную символьную строку (даже если она содержит разделители строк). Метасимвол начала строки ‘^’ соответствует только началу обрабатываемого текста, в то время как метасимвол “конец строки” ‘$’ соответствует концу текста, либо позиции перед завершающим текст переводом строки (в случае, если модификатор D не установлен). В Perl ситуация полностью аналогична.
Если этот модификатор используется, метасимволы “начало строки” и “конец строки” также соответствуют позициям перед произвольным символом перевода и строки и, соответственно, после. Это соответствует Perl-модификатору \m. В случае, если обрабатываемый текст не содержит символов перевода строки, либо шаблон не содержит метасимволов ‘^’ или ‘$’, данный модификатор не имеет никакого эффекта.
немного не из той оперы, тут в основном описание ^ и $
systemd должен умереть.
Не только. По-умолчанию регекспы работают только для строки (то есть до первого \n), в нескольких строках сразу поиск не получится.
ну есть m//
тогда расширю вопрос: как достать участок текста между 2-мя заранее известными сочетаниями символов
такие дела.
может так
/izvestnaya_stroka1(.*?)izvestnaya_stroka2/mi
что-то никак не пашет :(
такие дела.
Вот примерно на пхп (работает)

<?php
echo $str1 = 'mjkjsd jg lkiosdjgj sgduj;os gj
mjsdjkljsdkgjlks dsdgj pojsdg
kmsdlkj sjdglks jdgo sjgjposejgpo
';
    
preg_match("/ gj\n(.*?)\nkm/mi", $str1, $matches);
    
echo $matches[1];
?>
 
Зарегистрироваться или войдите чтобы оставить сообщение.