Необязательная группа регулярных выражений в Python не работает - PullRequest
1 голос
/ 07 октября 2019

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

Текстовое содержание:

Information Location
Porto Alegre
data data data data data data data data 
Geolocation

Если я использую это регулярное выражение (?:Information\sLocation\n.*\n)([\W\w]+)(?:Geolocation), я получу данные данных .... Это нормально! Это нормально!

Но иногда структура текста может быть такой:

Information Location
Porto Alegre
data data data data data data data data 

, и мой Regex не работает! Я пытался найти какой-то способ поставить последнюю группу (?: Geolocation) как необязательную, но не могу найти решение.

1 Ответ

1 голос
/ 07 октября 2019
  1. сделать группу захвата менее жадной, добавив ?
  2. , добавив альтернативу \s*\Z для конца файла внутри последней группы

Примерно так:

(?:Information\sLocation\n.*\n)([\W\w]+?)(?:Geolocation|\s*\Z)

Демо

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