Регулярное выражение Python с ретроспективой и альтернативами

Я хочу иметь регулярное выражение, которое находит тексты, которые «заключены» между «HEAD или HEADa» и «HEAD. То есть у меня может быть текст, который начинается с первого слова как HEAD или HEADa, а следующие за ним «заголовки» относятся к типу HEAD.

  1. HEAD \ n \ n текст ... текст ... HEAD \ n \ n текст .... текст HEAD \ n \ n текст .... текст .....
  2. HEADa \ n \ n текст ... текст ... HEAD \ n \ n текст .... текст HEAD \ n \ n текст .... текст .....

Я хочу захватить только текст, который находится между "головы", поэтому у меня есть регулярное выражение с выражениями "взгляд назад" и "взгляд вперед", ищущие мои "головы". У меня есть следующее регулярное выражение:

var = "HEADa", "HEAD"

my_pat = re.compile(r"(?<=^\b"+var[0]+r"|"+var[1]+r"\b) \w*\s\s(.*?)(?=\b"+var[1] +r"\b)",re.DOTALL|re.MULTILINE)

Однако, когда я пытаюсь выполнить это регулярное выражение, я получаю сообщение об ошибке, в котором говорится, что у меня не может быть переменной длины в выражении просмотра позади. Что не так с этим регулярным выражением?

6
задан Chris Morgan 19 November 2011 в 13:53
поделиться