Я пытаюсь извлечь текст между маркерами. Но эти маркеры являются жетонами и часто повторяются. ввод 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, чтобы проверить каждое условие.