如何检查 Swift 4.0 中的正则表达式是否有连续字符?

ayk*_*utt 4 regex ios swift

谁能给我一个 Swift 正则表达式来识别字符串中的连续字符?

我的正则表达式是.*(.)\\1$,这不起作用。我的代码块是;

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

例子:

abc123abc -> 应该有效

abc11qwe 或 aa12345 -> 不应有效,因为11aa

谢谢

Kru*_*nal 5

这个正则表达式可能会帮助您,(识别连续的重复字符 - 它验证并满足与您共享的示例的匹配。但是您需要测试输入字符串的其他可能场景。)

(.)\\1
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

试试这个,看看:

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")
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述