Swift 正则匹配 [英] Swift Regex Matching
本文介绍了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
,3
和 Br
,3
我该怎么做?
推荐答案
这不是一个 Swift 特定的问题,而是一个 Cocoa 问题.您没有指定是为 OS X 还是 iOS 开发,但两者都通过 NSRegularExpression
和 NSString
提供出色的正则表达式支持.
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屋!
查看全文