gpt4 book ai didi

c# - 正则表达式 c# 从 标签中提取 url

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:39 25 4
gpt4 key购买 nike

我正在尝试从标签中提取 URL,但没有得到 https://website.com/-id1 ,我正在获取标签链接文本。这是我的代码:

string text="<a style=\"font - weight: bold; \" href=\"https://website.com/-id1\">MyLink</a>";

string parsed = Regex.Replace(text, " <[^>] + href =\"([^\"]+)\"[^>]*>", "$1 " );

parsed = Regex.Replace(parsed, "<[^>]+>", "");

Console.WriteLine(parsed);

我得到的结果是MyLink,这不是我想要的。我想要类似的东西

https://website.com/-id1

我们将不胜感激任何帮助或链接。

最佳答案

正则表达式可用于非常具体、简单的 HTML 情况。例如,如果文本包含 一个标签,您可以使用"href\\s*=\\s*\"(?<url>.*?)\""提取 URL,例如:

var url=Regex.Match(text,"href\\s*=\\s*\"(?<url>.*?)\"").Groups["url"].Value;

此模式将返回:

https://website.com/-id1

这个正则表达式没有做任何花哨的事情。它寻找 href=带有可能的空格,然后以非贪婪的方式 ( .*? ) 捕获第一个双引号和下一个双引号之间的任何内容。这是在命名组 url 中捕获的.

任何更花哨的事情都会变得非常复杂。例如,同时支持单引号和双引号需要特殊处理以避免以单引号开始并以双引号结束。字符串可以是多个 <a>使用两种引号的标签。

对于复杂的解析,最好使用像 AngleSharp 这样的库或 HtmlAgilityPack

关于c# - 正则表达式 c# 从 <a> 标签中提取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118366/

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