У меня есть строки, которые могут выглядеть примерно так: NE=GPE_6079|Morph=gsn|TopoField=MF
, NE=ORG_6078a|Morph=gsf|TopoField=MF
, Corr=Hapag|NE=ORG_288-ORG_288a|Morph=dsf|TopoField=MF
.
Меня интересует только первое число после NE=ORG_
. Например. для третьей строки я хочу 288
. NE=
может быть где угодно в строке, ограниченной |
.
Моя первая попытка выглядит примерно так:
tag = tag.split("|")[determine_position(tag)].split("=")[1].split("_")[1]
Я извлекаю фактический тег из последовательности тегов. Так что за Corr=Hapag|NE=ORG_288-ORG_288a|Morph=dsf|TopoField=MF
я получаю 288-ORG_288a
. Это работает нормально, проблема в том, что теперь я должен обработать этот тег. Если я теперь разделю -
и возьму число с помощью индексации, это сработает. Но мой файл содержит 500 тыс. Строк, и я уверен, что если я продолжу так, мне придется взглянуть на множество разных случаев.
Я мог бы взять этот вывод и, возможно, обработать его снова, посмотреть на каждый символ, объединить один за другим и один раз что-то еще, но появляется число, завершить процесс и вернуть число.
Но это совсем не гладко, должен быть легкий путь. Спасибо!