Swift 正则匹配 [英] Swift Regex Matching

查看:22
本文介绍了Swift 正则匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

模式不是问题

我有一个正则表达式

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

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

I want to match that to text. Example would be matching it to Al3Br3, where I would expect the result to be

Al,3Br,3

我该怎么做?

推荐答案

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

This is not a Swift specific question but more a Cocoa question. You don't specify wether you are developing for OS X or iOS but both have excellent regular expression support via NSRegularExpression and NSString.

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

Here is and example of their usage in 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

这篇关于Swift 正则匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆