html - Swift Regex 从页面 html 中检索 token

标签 html swift regex token

我有一个页面 html 是这样的:

<!DOCTYPE html>
   <html>
  <head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial- 
    scale=1"/>
    <title>Odoo</title>
    <link type="image/x-icon" rel="shortcut icon" 
   href="/web/static/src/img/favicon.ico"/>
    <script type="text/javascript">
                var odoo = {
                    csrf_token: 
    "999b60e0c81591c5909866b2421e01ff397bcc16o",
                };
             </script>
       <meta name="theme-color" content="#875A7B"/>

我想检索 csrf_token 的值,请问我该怎么做?

我试过类似的东西

let a = text!.matchingStrings(regex: "\"csrf_token\":([A-z0-9]*")

extension String {
  func matchingStrings(regex: String) -> [[String]] {
     guard let regex = try? NSRegularExpression(pattern: regex, 
  options: []) else { return [] }
    let nsString = self as NSString
    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))
                : ""
        }
    }
    }
  }

但它不起作用。

如有任何帮助,我们将不胜感激。

编辑

像@Pushpesh Kumar Rajwanshi 一样建议解决方案是

let regex = try NSRegularExpression(pattern: "\"csrf_token\":([A-z0-9]*")

最佳答案

为什么在字符串中没有用双引号将 csrf_token 括起来。 csrf_token: 之后似乎还有一个空格,因此您的正则表达式无法正常工作。你可以使用这个正则表达式,

csrf_token:\s*"([^"]*)"

并捕获 group1 以提取 csrf_token 属性的文本。在您的语言中,您可能必须像在正则表达式中那样转义 "

Demo

关于html - Swift Regex 从页面 html 中检索 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54686012/

相关文章:

ios - 如何在 Firebase 中创建自动递增键?

java - 获取单引号或空格之间的字符串

javascript - 如何将这些电子邮件正则表达式更改为不区分大小写?

javascript - 没有 PHP 的 HTML 下载计数器

html - CSS 媒体查询屏幕方向问题

javascript - 在溢出 :hidden DIV without clipping 内为 DIV 创建覆盖

javascript - Chart.js 中的 donut chart 调整问题

ios - 获取默认日历时出错,仅第一次出现,但之后工作正常

ios - 从 [NSString : AnyObject] as UIViewAnimationCurve? 获取对象

python - 使用正则表达式(或另一个 python 模块)来比较文本/字符?