Я пытаюсь найти полную форму сокращений, которые были указаны в тексте с использованием скобок.
Вот пример:
Сообщалось, что аберрантное метилирование ДНК, одно из основных эпигенетических изменений при раке, накапливается в подмножестве колоректального рака (CRC), так называемого фенотипа метилирования островков CpG (CIMP), который, как известно, коррелирует со сниженной нестабильностью микросателлитов (MSI)-высокий CRC
Здесь я хочу сформировать список кратких / полных форм, таких как:
CRC - колоректальный рак
CIMP - CpG островной метилирующий фенотип
MSI - микроспутник пониженной нестабильности
Дело в том, что мне удалось найти все заключенные в скобки объекты, используя re.findall('(\(.*?\))', s), но найти соответствующую полную форму оказывается трудно.
Предполагая, что все такие полные формы находятся в левой части круглых скобок, я хочу использовать следующие 2 условия для захвата полной формы аббревиатуры в круглых скобках:
- количество слов должно быть не более 3+| SF | где | SF | количество символов в краткой форме (микросателлиты с уменьшенной нестабильностью (MSI) - здесь полная форма имеет 4 слова, тогда как короткая форма имеет 3 символа)
- Первое слово в полной форме начинается с первым символом короткой формы (например, с olorectal рак (с гсом))
С моим нынешним пониманием regex
я не смог написать regex
которое решает 2 вышеупомянутых условия и находит все подобные случаи в тексте.
Не могли бы вы дать мне несколько советов для этого?