2015-11-13 49 views
0

如何在Swift中的圓括號之間獲得文本的字符串值數組?在Swift中的圓括號之間查找文本

例如來自:MyFileName(2015)(Type)(createdBy).zip

我想:[2015,Type,createdBy]

+3

我相信你要找的詞是「圓括號」。 ;-) –

+2

正則表達式:'\((。*?)\)' –

+1

@Thomas:您應該發表您的評論作爲答案。如果您使用Swift/Cocoa正則表達式示例進行詳細說明,可以獲得獎勵積分。 :-) –

回答

0

這是我的RegEx 這實際上是試圖讓括號之間的單詞。例如。 (微笑)

NSRegularExpression(pattern: "\\\\(\\\w+\\\\)",options:NSRegularExpressionOptions.CaseInsensitive) 

它適合我!

3

以下是在夫特2

func matchesForRegexInText(regex: String!, text: String!) -> [String] { 

do { 

    let regex = try NSRegularExpression(pattern: regex, options: []) 
    let nsString = text as NSString 

    let results = regex.matchesInString(text, 
             options: [], range: NSMakeRange(0, nsString.length)) 
    return results.map { nsString.substringWithRange($0.range)} 

} catch let error as NSError { 

    print("invalid regex: \(error.localizedDescription)") 

    return [] 
}} 

和使用一個完整的例子:

let regex = "\\((.*?)\\)" 
matchesForRegexInText(regex, text: " exmaple (android) of (qwe123) text (heart) between parentheses"); 
+0

該函數看起來像來自https://stackoverflow.com/a/27880748/1187415的逐字拷貝。 –

4

只要更新所述選擇的回答夫特3:

func matchesForRegexInText(regex: String!, text: String!) -> [String] { 

do { 

    let regex = try NSRegularExpression(pattern: regex, options: []) 
    let nsString = text as NSString 

    let results = regex.matches(in: text, 
             options: [], range: NSMakeRange(0, nsString.length)) 
    return results.map { nsString.substring(with: $0.range)} 

} catch let error as NSError { 

    print("invalid regex: \(error.localizedDescription)") 

    return [] 
}} 

用法保持相同。

相關問題