簡體   English   中英

如何檢查Swift 4.0中是否有正則表達式的連續字符?

[英]How can I check is there any consecutive characters with a regex in Swift 4.0?

任何人都可以給我一個Swift正則表達式來識別字符串中的連續字符嗎?

我的正則表達式是.*(.)\\\\1$ ,這不起作用。 我的代碼塊是;

let regex = ".*(.)\\1$"
return NSPredicate(format: "SELF MATCHES %@", regex).evaluate(with: string)

例子:

abc123abc - >應該有效

abc11qwe或aa12345 - >因11aa而無法生效

謝謝

這個正則表達式可以幫助你,(標識連續的重復字符 - 它驗證並滿足與你共享的樣本的匹配。但是你需要測試輸入字符串的其他可能場景。)

(.)\\1

在此輸入圖像描述

試試看,看看:

let string = "aabc1123abc"
//let string = "abc123abc"
let regex = "(.)\\1"
if let range = string.range(of: regex, options: .regularExpression) {
    print("range - \(range)")
}

// or

if string.range(of: regex, options: .regularExpression) != nil {
    print("found consecutive characters")
}

結果:

在此輸入圖像描述

使用NSRegularExpression而不是NSPredicate

let arrayOfStrings = ["abc11qwe","asdfghjk"]
for string in arrayOfStrings {
        var result = false
        do{
            let regex = try NSRegularExpression(pattern: "(.)\\1", options:[.dotMatchesLineSeparators]).firstMatch(in: string, range: NSMakeRange(0,string.utf16.count))
            if((regex) != nil){
                result = true
            }

        }
        catch {

        }
        debugPrint(result)
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM