Örnek
tomb
womb
"omb" kısmı ortak.
Tekrar eden ifadeler de denebilir belki. Bu açıdan da bakılabilir.

text distance mi ölçmek istiyorsun? örneğin google'ın "bunu mu demek istiyorsunuz" algoritmasının temelinde buna benzer algoritmalar yatar.
anthonysmoak.com
en.wikipedia.org


@altinci nesil caylak, açıkladığım şeyi yapmak istiyorum. Daha basit yöntemler arıyorum ama sanırım yok.


sadece 2 kelime arasındaki ortak harfleri mi alacaksınız?
tombala
bombastik
burada ne gelmesini bekliyorsunuz? yani sadece omba'nin yeri tutuyor diye onu mu? misal 2 kelimedeki t'ye ne olacak? ilk kelimedeki 2 a var o ne olacak? detay verirseniz daha doğru olur diye düşünüyorum.


@altinci nesil caylak, hocam kelimelerin bir baştan bir de sondan ortak kısımlarımı bulmak istiyorum.
adoption, allegation, burada tion kısmı ortak
Yazdığınız örnekte ortak kısım içte. Onu istemiyorum. Ama mantık olarak işime yarayabilir. "Omba" kısmının bulunmasını istiyorum.
Sadece iki kelime değil. Onlarca kelime var. Bu iş bu şekilde çözülemeyecek gibi.
Teşekkür ederim.


aşağıdaki fonksiyonu macro olarak kaydedip;
a1'e tombala, b1'e bombastik yazıp, c1'e de =FindCommonChar(A1;B1;false) formülü koyarsanız baştan, =FindCommonChar(A1;B1;true) koyarsanız sondan kontrol eder. bu fonksiyon baştan veya sonran her iki kelimede aynı sıradaki harfleri getirir. aynı sırada eşit olmayandan harften sonra aynı sırada eşit harf varsa onu da getirir.
tombala & bombastik -> baştan : omba
mastik & bombastik -> sondan : astik
tomkala & bombastik -> baştan : oma
Function FindCommonChar(a As String, b As String, isReverse As Boolean)
aStr = ""
For I = 1 To IIf(Len(a) > Len(b), Len(b), Len(a))
If Mid(IIf(isReverse, StrReverse(a), a), I, 1) = Mid(IIf(isReverse, StrReverse(b), b), I, 1) Then aStr = aStr & Mid(IIf(isReverse, StrReverse(a), a), I, 1)
Next I
FindCommonChar = IIf(isReverse, StrReverse(aStr), aStr)
End Function
