我有一个这样的页面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一样,建议的解决方案是
让regex =尝试NSRegularExpression(pattern:“ \” csrf_token \“:([A-z0-9] *”)
答案 0 :(得分:1)
为什么csrf_token
括在字符串中而不用双引号引起来。 csrf_token:
后似乎也有空格,因此您的正则表达式无法正常工作。您可以使用此正则表达式,
csrf_token:\s*"([^"]*)"
然后捕获group1以提取csrf_token
属性的文本。用您的语言,您可能必须像在正则表达式中一样逃避"
。