Merhaba arkadaşlar UKÜ Sözlük sitesini yaparken sözlükte olması gereken (bkz: gerekli metin) bu sistemi fonskiyon kullanarak yapamıyordum regex kütüphanesini kullanarak bunu başardım yazımda sizlere paylaşmak istedim. Türkçe karakter problemi de yoktur. Eğer sadece linkler için kullanmak istiyorsanız \W olan kısmı \s yapmanız yeterli olacaktır. regular expression kullanılmıştır bunun hakkında bilgi almanız fonksiyon üzerinde farklı uygulamalar çıkarmanıza fayda sağlayacaktır.
Function Bkz(ByVal str) Set objReg = New RegExp objReg.Global = True objReg.IgnoreCase = True objReg.Pattern = "\(bkz:\W*(.*?)\)" Bkz = objReg.Replace(str,"(bkz: <a href=""show.asp?t=$1"">$1</a>)") Set objReg = Nothing End Function
Yardımcı bilgiler
\w | Sadece alfanümerik değerlerin gelebileceğini belirtir. Örn: [a-zA-Z0-9_] |
\W | Alfanümerik olmayan değerlerin gelebileceğini belirtir. Örn: [^a-zA-Z0-9_] |
\s | Boşluk karakterlerini ifade eder. Örn: [\f\n\r\t\v] |
\S | Boşluk karakteri olmayan karakterleri ifade eder. Örn: [^\f\n\r\t\v] |
\d | 0-9 arasında tek bir sayının olacağını ifade eder. Örn: [0-9] |
\D | Rakam olmayan tek bir karakteri ifade eder. Örn: [^0-9] |
\b | Bir kelimenin belirtilen dizi ile sonlanmasını ifade eder. Örn: \w+\.asp\b |
\B | Bir dizinin başında veya sonunda olmaması gereken karakterleri ifade eder. Örn : \w+\.asp\B |
\n | Yeni satır karakterini ifade eder. |
\t | Tab karakterini ifade eder. |
\r | Satır başı karakterini ifade eder. |
\f | Sayfa ilerletme karakterini ifade eder. |
\v | Dikey tab karakterini ifade eder. |
\num | Desen içinde yer alan ifade karşılıklarını kullanmamıza yarar. Örn: <(b)>(.*)<\/\1> |
\xn | Onaltılık(hexdecimal) sistemdeki bir karakteri ifade eder. Örn: \x 40 ifadesi bana @ işaretini verir. |