【问题标题】:Swift Regex MatchingSwift 正则表达式匹配
【发布时间】:2015-02-28 01:16:31
【问题描述】:

模式不是问题

我有一个正则表达式字符串

var elementRegex = "([A-Z][a-z]?)(\\d*)?"

我想将其与文本匹配。示例将其与Al3Br3 匹配,我希望结果是

Al,3Br,3

我该怎么做?

【问题讨论】:

标签: regex swift


【解决方案1】:

这不是一个 Swift 特定的问题,而是一个 Cocoa 问题。您没有指定您是为 OS X 还是 iOS 开发,但两者都通过 NSRegularExpressionNSString 提供出色的正则表达式支持。

以下是它们在 Swift 中的用法示例:

let s: NSString = "Al3Br3"
if let r = NSRegularExpression(pattern: "([A-Z][a-z]?)(\\d*)?", options: NSRegularExpressionOptions.allZeros, error: nil) {
    for match in r.matchesInString(s, options: NSMatchingOptions.allZeros, range: NSMakeRange(0, s.length)) as [NSTextCheckingResult] {
        println("Match:")
        for i in 0..<match.numberOfRanges {
            println("\(i): \(s.substringWithRange(match.rangeAtIndex(i)))")
        }
    }
}

这会导致:

Match:
0: Al3
1: Al
2: 3
Match:
0: Br3
1: Br
2: 3

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 2015-10-24
    • 1970-01-01
    • 2019-03-30
    • 2011-05-01
    相关资源
    最近更新 更多