Я пытался извлечь подраздел, имеющий римскую индексацию, из документа PDF.
Например, это один из разделов документа,
\ n1.1 \ n \ nSCOPE \ n \ nЭто PTS определяет \ n \ nrequirements \ nи рекомендации для классификации, проверки \ n \ nFunct \ nions. \ N \ nВ область действия входит следующее: \ n \ ni. \ n \ nSemi \ n- \ nколичественная классификация SIL \ n \ nii. \ n \ nБезопасный анализ поездок \ n \ niii. \ n \ nПробиалистическая и архитектурная проверка SIL \ n \ niv. \ n \ nРекомендации \ n \ nдля пробела SIL замкнутость "
я хочу только ниже:
В этом PTS указываются \ n \ nrequirements \ nи рекомендации по классификации, проверке \ n \ nFunct \ nions. \ N \ nВ область действия входит следующее: \ n \ ni. \ N \ nSemi \ n- \ n-количественная классификация SIL \ n \ nii. \ n \ nБезопасный анализ командировок \ n \ niii. \ n \ nПробиалистическая и архитектурная проверка SIL \ n \ niv. \ n \ nРекомендации \ n \ nДля закрытия пробела SIL
Мне нужно предложение перед римской индексацией, а также содержание внутри римской индексации.
Однако бывают случаи, подобные приведенным ниже
3.1.3 \ n \ nDo \ nc \ numentation \ n \ nrequired \ n \ nT \ nh \ ne \ n \ nl \ nat \ ne \ ns \ nt \ n \ nissue \ n \ nof \ n \ nt \ nh \ ne \ n \ nf \ no \ nllo \ nw \ ni \ nng \ n \ ndocume \ nn \ nts \ n \ nshall \ n \ nbe \ n \ nav \ na \ nilab \ nl \ ne \ n \ nto \ n \ nthe \ n \ nte \ na \ nm \ n \ np \ ne \ nrf \ no \ nrm \ ni \ nng \ n \ nt \ nh \ ne \ nc \ nl \ nass \ ni \ nf \ ni \ ncati \ no \ nn: \ n \ ni. \ n \ nОбязательный справочный документ \ n \ na) \ n \ n Матрицы причин и следствий (CEM) \ n \ nb) \ n \ n Диаграмма трубопроводов и приборов (P & ID) или Процесс и утилита инженерные \ nflow схемы (PEFS) \ n \ nc) \ n \ nОтчет HAZOP \ n \ nd) \ n \ n Данные о надежности IPF \ n \ nii. \ n \ nДругие справочные документы \ n \ na) \ n \ nПроцессная схема (PFD) или Process Fl \ now Scheme (PFS) \ n \ nb) \ n \ nПроектный макет чертежа \ n \ nc) \ n \ nПроцесс защиты схем потока (PSFS) \ n \ nd) \ n \ nОтзывы о контроле \ n \ ne) \ n \ nЗамены блокировки / ESD \ n \ nf) \ n \ n Схема компоновки оборудования \ n \ ng) \ n \ nДанные технического обслуживания и проверки \ n \ nh) \ n \ nДанные по истории завода \ n \ n \ nT \ nh \ ne \ n \ nl \ ni \ ns \ nt \ n \ na \ nb \ no \ nve \ n \ nis \ n \ nn \ no \ nt \ n \ ne \ nx \ nh \ na \ nu \ NSTI \ пу \ пе. Любой \ n \ not \ nh \ ne \ nr \ n \ ndo \ nc \ nu \ nm \ ne \ nn \ nt \ ns \ n / \ nd \ nr \ na \ nw \ nin \ ng \ ns \ n \ nreq \ nu \ nir \ ne \ nd \ n \ nf \ no \ nr \ n \ nt \ nhe \ nc \ nom \ np \ nletion \ n \ no \ nf \ n \ nIPF \ n \ ns \ nt \ nu \ nd \ ny \ n \ ns \ nh \ na \ nll \ n \ nbe \ n \ nf \ nu \ nr \ nn \ nished \ n \ nas \ n \ na \ nn \ nd \ n \ nw \ nhen \ n \ nre \ nq \ nui \ nr \ ne \ nd \ n. \ n \ n
Я преобразовал PDF в необработанный текст, и мне удалось извлечь часть документа.
regx = re.compile( '\.\n \n.+?:\n \n',re.DOTALL)
find = str(txt)
indexhead.append((regx.findall(find)))
Приведенный выше код может извлекать только заголовок, но не римскую индексацию вместе
. \ N \ nВ область действия входит следующее: \ n \ n
Я пытаюсь извлечь данные на основе шаблона, но думаю, что могут быть полезны некоторые условные правила.