Parantez kullanarak bir metinde belirtilen kısaltmalar tam olarak bulmaya çalışıyorum.
İşte bir örnek:
Kanserdeki başlıca epigenetik değişikliklerden biri olan Aberrant DNA metilasyonunun, mikro uydu azaltılmış instabilite ile korele olduğu bilinen CpG ada metilat fenotipi (CIMP) olarak adlandırılan bir kolorektal kanser alt kümesinde (CRC) biriktiği rapor edilmiştir. MSI) -yüksek CRC
Burada şöyle bir kısa form / tam form oluşum listesi oluşturabilmek istiyorum:
CRC - Kolorektal Kanser
CIMP - CpG adası metilatörü fenotipi
MSI - mikro uydu kararsızlığı azalttı
Mesele şu ki kullanarak parantez içindeki bütün parçaları bulabildim re.findall('(\(.*?\))', s), fakat karşılık gelen tam formu bulmak zor.
Bu tür tüm formların parantezin sol tarafında olduğunu varsayarak, parantez içindeki kısaltmanın tam halini yakalamak için aşağıdaki 2 koşulu kullanmak istiyorum.
- kelime sayısı en fazla 3+ | SF | nerede | SF | Kısa biçimdeki karakter sayısıdır (mikro uydu azaltılmış kararsızlık (MSI) - burada tam biçim 4 sözcük, kısa biçim 3 karakterdir)
- Tam formun ilk kelimesi, kısa formun ilk karakteriyle başlar (örneğin, c. Omurek kanseri ( c rc)).
Şimdiki anlayışıma göre regex, regexyukarıdaki 2 koşulu çözen ve bu gibi tüm vakaları metinde bulan bir yazı yazamadım .
Lütfen bana bunun için bazı öneriler verebilir misiniz?