Swift 正则表达式匹配
Posted
技术标签:
【中文标题】Swift 正则表达式匹配【英文标题】:Swift Regex Matching 【发布时间】:2015-02-28 01:16:31 【问题描述】:模式不是问题
我有一个正则表达式字符串
var elementRegex = "([A-Z][a-z]?)(\\d*)?"
我想将其与文本匹配。示例将其与Al3Br3
匹配,我希望结果是
Al
,3
和 Br
,3
我该怎么做?
【问题讨论】:
***.com/questions/25071444/regex-in-swift 【参考方案1】:这不是一个 Swift 特定的问题,而是一个 Cocoa 问题。您没有指定您是为 OS X 还是 ios 开发,但两者都通过 NSRegularExpression
和 NSString
提供出色的正则表达式支持。
以下是它们在 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 正则表达式匹配的主要内容,如果未能解决你的问题,请参考以下文章