gpt4 book ai didi

regex - 提取href url的正则表达式

转载 作者:行者123 更新时间:2023-11-28 10:14:16 25 4
gpt4 key购买 nike

我想使用正则表达式从字符串中提取链接。我找到了类似的帖子 here我试过这段代码

let regex = try! NSRegularExpression(pattern: "<a[^>]+href=\"(.*?)\"[^>]*>.*?</a>")
let range = NSMakeRange(0, text.characters.count)
let htmlLessString :String = regex.stringByReplacingMatches(in: text,
options: [],
range:range ,
withTemplate: "")

但是提议的正则表达式删除了href标签的所有内容。我的字符串看起来像

SOME stirng  <a href="https://com.mywebsite.com/yfgvh/f23/fsd" rel="DFGHJ"> some text I need to keep </a> and other text

预期的结果是

SOME stirng  https://com.mywebsite.com/yfgvh/f23/fsd some text I need to keep and other text

完美的结果是

SOME stirng some text I need to keep (https://com.mywebsite.com/yfgvh/f23/fsd) and other text

您是否知道是否有可能实现这一目标?

最佳答案

当然它会删除 href内容,因为你是...ReplacingMatches...用空字符串。

您的示例字符串与模式不匹配,因为结束标记 </a>丢失了。

图案 "<a[^>]+href=\"(.*?)\"[^>]*>"检查链接后的右尖括号。

捕获的组位于匹配项的索引 1 处。此代码打印所有提取的链接:

let text = "<a href=\"https://com.mywebsite.com/yfgvh/f23/fsd\" rel=\"DFGHJ\">"

let regex = try! NSRegularExpression(pattern: "<a[^>]+href=\"(.*?)\"[^>]*>")
let range = NSMakeRange(0, text.characters.count)
let matches = regex.matches(in: text, range: range)
for match in matches {
let htmlLessString = (text as NSString).substring(with: match.rangeAt(1))
print(htmlLessString)
}

关于regex - 提取href url的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43591749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com