2017-04-22 10 views
0

ユーザーが情報を投稿した後で、WebページのHTMLにアクセスしています。文字列を見つけて来る文字を抽出する

私が持っている場合は...

var htmlString = "This is the massive HTML string - it has lots of characters "FindStringDetails"<123789456.123456> This is a massive HTML string - " 
var findString = "FindStringDetails\"<" 

は私が私に123789456.123456を与えるために「FindStringDetails」<の後に来る数字を抽出でき、適切な方法はありますか?

答えて

0
import Foundation 

var htmlString = "This is the massive HTML string - it has lots of characters \"FindStringDetails\"<123789456.123456> This is a massive HTML string - " 
var findString = "FindStringDetails\"<" 

extension String { 
    func matchingStrings(regex: String) -> [[String]] { 
     guard let regex = try? NSRegularExpression(pattern: regex, options: []) else { return [] } 
     let nsString = NSString(string: self) 
     let results = regex.matches(in: self, options: [], range: NSMakeRange(0, nsString.length)) 
     return results.map { result in 
      (0..<result.numberOfRanges).map { result.range(at: $0).location != NSNotFound 
       ? nsString.substring(with: result.range(at: $0)) 
       : "" 
      } 
     } 
    } 
} 

let m = htmlString.matchingStrings(regex: "\(findString)(\\d+)\\.(\\d+)") 

print(m[0][1]) // 123789456 
print(m[0][2]) // 123456 

(コードhereから適応。)ご回答のため

+0

感謝を。これは私に多く見てきました。 取得しようとしていたクエリに数字と数字が含まれていて、スペースも含まれていた場合。 "John3 321"これを1つの文字列として取得するにはどうすればよいですか? –

+0

tuple_catさんがあなたの元の質問に回答しました。あなたはあなたの質問に対する答えを受け入れ、新しい質問をするべきです。 – Mozahler

+0

'' \(findString)(\\ d +)(\\ d +) "'のような意味ですか? (または\(findString)(\\ d +)[\\。](\\ d +) "'を使用してください)。 – emlai

関連する問題