регулярное выражение Python Multiline - PullRequest
0 голосов
/ 14 марта 2019

как я могу искать шаблоны в текстах, которые занимают несколько строк и имеют фиксированные позиции, относящиеся друг к другу, например шаблон, состоящий из 3 букв х прямо друг под другом, и я хочу найти их в любой позиции в строке, например, не только в начале. Заранее спасибо за ответ!

1 Ответ

0 голосов
/ 14 марта 2019

Я полагаю, что проблема, о которой вы спрашиваете, это «Найти шаблоны, которые появляются с одинаковым смещением в серии линий».

Я не думаю, что это описывает обычный язык , поэтому вам нужно использовать расширенные функции регулярных выражений в Python, чтобы иметь возможность найти решение на основе регулярных выражений. Но я не верю, что Python поддерживает достаточно расширенные возможности для выполнения этой задачи [1].

Если допустимо, чтобы они возникали при определенном смещении (а не «при любом смещении, если смещение непротиворечиво»), то что-то вроде этого должно работать:

/^.{OFFSET}PATTERN.*\n^.{OFFSET}PATTERN.*\n^.{OFFSET}PATTERN/, используя флаг MULTILINE, чтобы ^ соответствовал началу ряда строк, а не только началу всего текста.

[1] В частности, вы можете использовать обратную ссылку для захвата текста, предшествующего желаемому шаблону, в одну строку, но я не думаю, что вы можете запросить длину захваченного содержимого «inline». Вы можете снова найти тот же начальный текст в следующей строке, но это не похоже на то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...