Regex ile kod dosyasında fonksiyon tespiti nasıl yapılır?

Katılım
14 Eylül 2020
Mesajlar
2.981
Çözümler
72
Yer
İstanbul
Bir uygulamada regex ile dil tespiti tarzı bir şey yapmaya çalışıyorum. Aşağıdaki kod parçasını deniyorum. Şu anda sadece 2, 3 ve 6. satırlar uyuyor. Fakat benim istediğim bu parçada 4. satır dışında diğerlerine uyması. İfadede nasıl bir düzenleme yapmam gerekiyor?
Kullandığım regex: [A-Za-z0-9]{1,}\([a-zA-Z0-9\t\n ./<>?;:"'`!@#$%^&*()\[\]{}_+=|\\-]{1,}\)\;.

C-like:
println("Hello, world!");
println("");
print("What's your name?");
var username = readInput();
print("Hi, ");
println(username);
readInput();
 
Kendim de regex'de pek iyi değilim, ama pratik olsun diye şansımı denemek istiyorum.
Burada parçalara böleceğim match edeceğim stringi.

Anladığım kadarıyla fonksiyon call eden satırları match etmek istiyorsun, fonksiyon tanımlarını değil.

Fonksiyon isimleri:
Herhangi bir alfabetik veya `_` karakterleri ile baslamali.
Bu ilk karakterin ardindan istenilen sayida alfanumerik veya `_` karakterleri kullanilabilir.

Yani patternimiz şöyle olmalı:

İlk karakter: A'dan z'ye tüm karakterler ve _ karakteri. ([A-z]|_)
Ardından gelen karakterler: A'dan z'ye tüm karakterler, 0-9'a tüm sayılar ve _ karakteri. ([A-z]|[0-9]|_)*

Bunlarla beraber fonksiyon adını oluşturabildik.
Parametreleri verdiğimiz parantezleri ve içine verdiğimiz argümanları da şu şekilde yazabiliriz:
\(.*\)

Benim çözümüm: regex101: build, test, and debug regex

Biraz janky bir çözüm oldu, daha iyi sonuçlara ulaşacak arkadaşlar mutlaka vardır :)
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı