2017-04-22 87 views
0

我在用户提交信息后正在访问网页的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\"<" 

有没有办法,我可以提取“FindStringDetails” <之后来给我123789456.123456号码以合适的方式?

回答

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”我能做些什么来将它作为一个字符串? –

+0

tuple_cat已回答您的原始问题。你应该接受你的问题的答案,并提出一个新的问题。 – Mozahler

+0

你的意思是像'“\(findString)(\\ d +)(\\ d +)”'? (或''\(findString)(\\ d +)[\\。](\\ d +)“'与两者匹配。) – emlai

相关问题