Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Swift'te regex kullanımına ilişkin bir sorun

0 oy
37 kez görüntülendi
28, Ekim, 2015 ios development kategorisinde burhanaksendir tarafından soruldu
Bir cümle içerisindeki bazı kelimeleri regex ile yakalayıp, seçtiğim bu alanı NSRange değeri olarak almak istiyorum.

Örnek cümle:
"İnsanlara merhamet etmeyene ALLAH merhamet etmez."

Bu cümle içerisindeki "merhamet etmeyene" ifadesinin NSRange değerini nasıl alabilirim ?

1 cevap

+1 oy
28, Ekim, 2015 yasin tarafından cevaplandı
28, Ekim, 2015 burhanaksendir tarafından seçilmiş
 
En İyi Cevap

şöyle bir şey iş görür herhalde;
hatta cümle içerisinde bir den fazla uyum yakalandığında hepsinin range'inin alabilirsiniz verdiğim örnekle.

var capturingPattern:String = "(merhamet etmeyene)"
        let string:String = "İnsanlara merhamet etmeyene ALLAH merhamet etmez. İnsanlara merhamet etmeyene ALLAH merhamet etmez."
        if let regex:NSRegularExpression = NSRegularExpression(pattern: capturingPattern, options:NSRegularExpressionOptions.CaseInsensitive, error: nil) {
            let aString:NSString = string as NSString
            var allRange:NSRange = NSMakeRange(0, aString.length)
            var matchedString:[AnyObject] = regex.matchesInString(string, options: NSMatchingOptions.allZeros, range: allRange)
            for (var index:Int, matches) in enumerate(matchedString) {
                if let match:NSTextCheckingResult = matches as? NSTextCheckingResult {
                    let matchRange:NSRange = match.rangeAtIndex(index)
                    println("matchRange:\(matchRange)")
                }
            }
        }
28, Ekim, 2015 burhanaksendir tarafından yorumlandı
Harika. Çok makbule geçti gerçekten. Teşekkür ederim yardımınız için.
...