LINUX.ORG.RU

Глупый вопрос по многострочным регуляркам

 ,


0

1

Как сдампив содержимое файла распарсить $TEXT, если файл имеет вид:

=======
$TEXT
=======

? На месте $TEXT может быть любое слово, мы только знаем, что оно заключено между строками с паттерном /^==+\n/. Я знаю что можно юзать RST парсер или написать простенький свой, но мне интересно, можно ли это сделать только регулярными выражениями?

Можно конечно, сбалансированные вроде тоже можно но тебе не понравится конечный регексп :)

zz ★★★★
()
Ответ на: комментарий от zz

Извиняюсь, я только недавно научился ими пользоваться, не думал что там трудно обрабатывать подобные паттерны.

flareguner
() автор топика

сделать только регулярными выражениями?

Если нужно чтобы длины «===» совпадали - можно back-references: r"(=+)\n([^\n]+)\n(\1)" (ну раз многострочные - вместо двух \n - новые строки), но парсер в этом случа имхо намного лучше.

anonymous
()
Ответ на: комментарий от pi11

То есть, что сожрет «==\ntest==» или «=\ntest\n==» - это так, деталь?) Тогда что нового ваш пост привнес?

anonymous
()
Ответ на: комментарий от flareguner

хз я регулярки по другим реализациям знаю

Deleted
()
Ответ на: комментарий от pi11

Он привнес галочку в названии топика

То, что кому-то удобнее кривые полуфабрикаты, ввиду отсутствия нормального продукта - все-таки слабенький аргумент.

anonymous
()
Ответ на: комментарий от anonymous

Тот лор, где истина была важнее рабочего решения, ушёл вместе с первым баном анонимуса.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.