выделение текста с использованием жадных и неохотных - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь извлечь текст между маркерами. Но эти маркеры являются жетонами и часто повторяются. ввод EDGAR TXT файлов. Мои маркеры ПУНКТ какой-то номер, т.е. ПУНКТ 1 и ПУНКТ 2.

мое регулярное выражение

MDA_regex = 'item[^a-zA-Z\n]*\d\s*\.\s*management\'s discussion and analysis.*?item[^a-zA-Z\n]*\d\s*'

Работает нормально, но не работает, если ключевое слово item \ d ... встречается между пунктом 1 и пунктом 2. Если я использую. *, Он переходит к другому нежелательному маркеру, поскольку отчеты могут содержать другой элемент \ d .... Если использовать. *? он застрянет при первом появлении предмета.

Я не могу жестко кодировать 1 и 2, потому что разные отчеты могут иметь разную позицию / заголовок, т.е. с пункта 7 до пункта 8 для моего необходимого текста. Я использую Python

for fileName in os.listdir(path):
    fileName = os.path.join(path, fileName)
    if os.path.isfile(fileName):
        print("opening new file " + fileName)
        with open(fileName, 'r', encoding='utf-8', errors='replace') as in_file:
            content = in_file.read().replace('\n',' ')
            mda_list=re.findall(MDA_regex,content, re.IGNORECASE|re.DOTALL)
            print(mda_list)
            print(len(mda_list))

Мой ввод похож на

Management's Discussion and Analysis of Financial Condition and
Results of Operations............................................. 22

Item 3. 

ITEM 1 . MANAGEMENT'S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION
AND RESULTS OF OPERATIONS.

FORWARD-LOOKING STATEMENTS
This report contains forward-looking statements. Additional
written or oral forward-looking statements may be made by AMERCO from
time to time in filings with the Securities and Exchange Commission or
otherwise. Management believes such forward-looking statements are
within the meaning of the safe-harbor provisions. Such item 1 statements may
include, but not be limited to, projections of revenues, income or
<PAGE> 33 
      ITEM 2. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK
DFDFDLF;DF SDLKD dlfldfkdffd;fl;l sdsl; dklkkdsmm,sd item 4
DDFLDFL dlkdsldkf dldfd;lf;f

Также «item» не может быть заглавными буквами, потому что в некоторых отчетах есть заглавные буквы, а в некоторых нет, т. Может кто-нибудь подсказать, как с этим справиться. Должен ли я использовать несколько регулярных выражений в условии if-else, чтобы проверить каждое условие.

...