我有一个很大的 HTML,我必须快速解析它并提取一些 id。
我如何从 :data-max-position="NAME-661174248527044608-661303076113014786-BD1UO2FFu9QAAAAAAAAET
中提取以下字符串 NAME-661174248527044608-661303076113014786
(number ar 之间不固定大小)?
我需要在 data-max-position="和第三次出现的 "-"之间获取数据
我应该使用什么正则表达式来提供我需要的信息?
到目前为止,对于另一种字符串,我使用了以下内容,但我不知道应该使用什么正则表达式来获取第一部分中提到的内容
let query = mystr
let regex = try! NSRegularExpression(pattern:"data-name-id=\"(.*?)\"", options: [])
let tmp = query as NSString
var results = [String]()
regex.enumerateMatches(in: query, options: [], range: NSMakeRange(0, query.characters.count)) { result, flags, stop in
if let range = result?.rangeAt(1) {
results.append(tmp.substring(with: range))
}
}
print(results) // ["test", "test1"]
它提取了 "data-name-id" 和第二个 "
中的内容最佳答案
如果你有一个你提到的格式的纯文本字符串,你可以使用正则表达式来提取它的一部分:
pattern:"\\sdata-max-position=\"([^\"-]+-[^\"-]+-[^\"-]+)"
详细信息:
\\s
- 一个空格data-max-position=\"
- 文字data-max-position="
子字符串([^\"-]+-[^\"-]+-[^\"-]+)
- 第 1 组(您需要的值)匹配[^\"-]+
-"
和-
以外的一个或多个字符
-
- 连字符[^\"-]+-[^\"-]+
- 见上文。
请注意,[^...]
是一个 *negated 字符类,它匹配字符类中范围/集中未定义的任何字符。
关于正则表达式在 swift 中提取一个字符串和另一个字符串的第三次出现之间的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40386572/