2016-12-09 14 views
0

У меня есть свод газет в виде сырых текстовых файлов, и я хотел бы получить от них редакционные статьи. Большинство редакционных статей начинаются после третьего экземпляра слова «РЕДАКЦИЯ» во всех шапках и заканчиваются нижним колонтитулом «sfbg».regex- using CategorizedPlaintextCorpusReader, чтобы найти n-й экземпляр слова

Моя идея - использовать регулярные выражения python для извлечения этих редакций. Я использую CategorizedPlaintextCorpusReader.

Я пробовал искать список методов CategorizedPlaintextCorpusReader самостоятельно, но я пришел пустым.

+0

'(. *? РЕДАКЦИИ) {3} (. *?) Sfbg' – sweaver2112

+0

Не могли бы вы уточнить, пожалуйста? Я по-прежнему довольно новичок в программировании в целом, и у меня совсем нет моего синтаксиса. –

ответ

1

хорошо, регулярное выражение, чтобы найти текст «после 3-го экземпляра слова РЕДАКЦИИ и перед окончанием разделителя„SFBG“» является:

(.*?EDITORIAL){3}(?<content>.*?)sfbg

Вот в consituent части:

(.*?EDITORIAL){3} - находит все до третьего использования слова «РЕДАКЦИЯ», используя не-жадный (более безопасный - избегает сопоставления слишком барахло) wildcard .*? и умножая всю группу на {3}.

(?<content>.*?) - названная группа совпадений «содержание». это совпадение, которое вы хотите, оно просто соответствует до ...

sfbg - окончательный разделитель.

regex101 demo

+0

Будет ли этот код идти после метода регулярного выражения? ex: 're.find (. *? EDITORIAL) {3} (? . *?) Sfbg'? –

+0

вы можете найти здесь правила синтаксиса https://docs.python.org/2/library/re.html – sweaver2112