Регулярное выражение Python findall не возвращает все совпадения текста Unicode - PullRequest
2 голосов
/ 29 сентября 2019

У меня есть текст Unicode, который содержит список журналов с некоторыми подробностями о каждом.Я хотел бы получить название только журналов.

Мой текст очень большой и выглядит так:

6) 6. ПО ЯЗЫКАМ И КУЛЬТУРАМ Полугодовой ISSN: 1585-1923AKADEMIAI KIADO ZRT, БУДАФОКИ UT 187-189-A-3, БУДАПЕШТ, ВЕНГРИЯ, H-1117 Указатель цитирования социальных наук Указатель цитирования по искусству и гуманитарным наукам 7) 7. ACTA ANALYTICA-INTERNATIONAL PERIODICAL FOR PHILOSOPHY IN ANALYTICAL TR ADITION 035-5150 SPRINGER, 233 SPRING ST, Нью-Йорк, США, NY, 10013 Индекс цитирования по искусству и гуманитарным наукам 8) 8. ACTA ARCHAEOLOGICA Ежегодный ISSN: 0065-101X WILEY, 111 RIVER ST, HOBOKEN, США, NJ, 07030-5774 Arts &Индекс цитирования гуманитарных наук 9) 9. Полугодовой выпуск ACTA BOREALIA ISSN: 0800-3831 ЖУРНАЛЫ ПО ПУТЕШЕСТВИЯМ, TAYLOR & FRANCIS LTD, 2-4 PARK SQUARE, MILTON PARK, ЭБИНГДОН, АНГЛИЯ, ОКСОН, OX14 4RN Индекс цитирования искусств и гуманитарных наук 10) 10. ACTACLASSICA Ежегодный номер ISSN: 0065-1141 UNIV FREE STATE, DEPT ENG CLASSICAL LANG, PO BOX 339, BLOEMFONTEIN, ЮЖНАЯ АФРИКА, 9300 Искусство и гуманитарные наукиУказатель 11) 11. ACTA HISTORICA TALLINNENSIA Ежегодный номер ISSN: 1406-2925 ИЗДАТЕЛИ ЭСТОНСКОЙ АКАДЕМИИ, 6 KOHTU, ТАЛЛИН, ЭСТОНИЯ, 10130 Индекс цитирования по искусству и гуманитарным наукам 12) 12. ACTA HISTRIAE Трехлетний номер ISSN: 1318-0185 4 تاریخ انتشار: 89/2/62 هیوهشگاه و شبکه آزمایشگاهی 98/3: Код UNIV ПРИМОРСКА, SCI RES ЦЕНТР КОПЕР, ГАРИБАЛДЖИЕВА 1, КОПЕР, СЛОВЕНИЯ, CAPODISTRIA, Индекс социальных наук цитирования по гуманитарным наукам SI-600013) 13. ACTA KOREANA Полугодовой ISSN: 1520-7412 ACADEMIA KOREANA KEIMYUNG UNIV, 1095 DALGUBEOLDAERO, DALSEO-GU, DAEGU, ЮЖНАЯ КОРЕЯ, 704-701 Указатель цитирования по искусству и гуманитарным наукам Текущее содержание - Искусство и гуманитарные науки 14) 14. ACIC LINGЕжеквартально ISSN: 1216-8076 АКАДЕМИАЙ КИАДО ЗРТ, БУДАФОКИ УТ 187-189-А-3, БУДАПЕШТ, ВЕНГРИЯ, H-1117 Индекс цитирования социальных наук Индекс цитирования по искусству и гуманитарным наукам 15) 15.ACTA LITERARIA Полугодовой ISSN: 0717-6848 UNIV CONCEPCION, FAC HUMANIDADES ARTE, CASILLA 160-C, CORREO 3, CONCEPCION, CHILE, 00000 Индекс цитирования по искусству и гуманитарным наукам 16) 16. ACTA MUSICOLOGICA Полугодовой ISSN, MOCX 0024-6561, БАЗЕЛЬ, ШВЕЙЦАРИЯ, CH-4001 Указатель цитирования по искусству и гуманитарным наукам Текущее содержание - Искусство и гуманитарные науки 17) 17. ACTA ORIENTALIA ACADEMIAE SCIENTIARUM HUNGARICAE Ежеквартально ISSN: 1588-2667 AKADEMIAI KIADO ZRT, BUDAFOKI-BUD 3 187-7, ВЕНГРИЯ, H-1117 Указатель цитирования по искусству и гуманитарным наукам 5 تاریخ انتشار: 89/2/62 پژوهشگاه و شبکه آزمایشگاهی 98/3: Кодовое содержание в настоящее время - Искусство и гуманитарные науки 18) 18. ACTAPHILOSOPHICA Полугодовой ISSN: 1121-2179 FABRIZIO SERRA EDITORE, PO BOX NO, 1, SUCC NO.8, PISA, ИТАЛИЯ, I-56123 Индекс цитирования по искусству и гуманитарным наукам Текущее содержание - Искусство и гуманитарные науки

Требуется возвращение матча

ПО ЯЗЫКАМ И КУЛЬТУРАМ Полугодовой

ACTA ANALYTICA-INTERNATIONAL ПЕРИОДИЧЕСКИЙ ДЛЯ ФИЛОСОФИИ В АНАЛИТИЧЕСКОМ ТРЕБОВАНИИ Ежеквартально

ACTA ARCHAEOLOGICA Ежегодно

и т. Д.

Я уже пробовал (https://regex101.com/r/eyafNd/1) и на сайте reg101 кажется, что это работает.

regex = r"^(\d+\)\s*\d+\.\s+)(.*?) ISSN"
l = re.findall(regex,txt,re.IGNORECASE)
print(len(l))
print(l)

То, что он возвращает, это список только с одним результатом следующим образом

[('6) 6. ', 'ACROSS LANGUAGES AND CULTURES Semiannual')]

Любая помощь будет оценена.

CS

1 Ответ

4 голосов
/ 29 сентября 2019

Может быть, взгляните на это регулярное выражение:

(?<=\d\.\s).+?(?=\sISSN)

Regex Demo

regex = r"(?<=\d\.\s).+?(?=\sISSN)"
l = re.findall(regex, txt, re.I)
print(len(l))
print(l)

Это говорит о начале сопоставления после число + точка+ пробел и до символов пробел + ISSN .Затем я могу подтвердить, что когда я пишу ваш текст, я получаю следующий список вывода с вашим кодом:

['ACROSS LANGUAGES AND CULTURES Semiannual', 'ACTA ANALYTICA-INTERNATIONAL PERIODICAL FOR PHILOSOPHY IN THE ANALYTICAL TR ADITION Quarterly', 'ACTA ARCHAEOLOGICA Annual'...]
...