C# 将常量字符串作为正则表达式组的前缀

C# 将常量字符串作为正则表达式组的前缀,c#,regex,C#,Regex,我被一个简单的问题难住了 我使用正则表达式从html标记中提取url。我想添加常量前缀 "The site is" 到提取的正则表达式组 标记示例: <html> <body> <a href="www.stackoverflow.com"></a> </body> </html> 但我想这样 The site is www.stackoverflow.com 如何获取它?简单回答:不要使用正则表达式解

我被一个简单的问题难住了

我使用正则表达式从html标记中提取url。我想添加常量前缀

"The site is"
到提取的正则表达式组

标记示例:

<html>
  <body>
    <a href="www.stackoverflow.com"></a>
  </body>
</html>
但我想这样

The site is www.stackoverflow.com

如何获取它?

简单回答:不要使用正则表达式解析HTML

Regex Regex=new Regex(@“”)
字符串输入=…//您的示例标记
String result=regex.Match(input.result)(“站点是${Url}”);

您不能简单地将“站点是”连接起来吗使用group result value?@Marco我认为如果我能在正则表达式本身中完成,那就太好了。应该使用IMHO正则表达式使用规则从复杂字符串中提取值:在…之后进行结果表示,类似于@mmdemirbas,我的问题与如何从锚中提取HREF完全无关,我想在提取的正则表达式组中添加一些字符串前缀,不是从代码中,而是在正则表达式本身中,希望您能得到它!:)即使你的建议是正确的,也不能解决问题。也许这应该是一个评论…答案是“不要这样做”--与链接问题的正确答案相同。不,那么答案不是这样,但这是我的意见。我试着解释我的意思。OP希望从网页中提取URL,然后希望将“站点”与该URL连接起来。OP如何提取url(Regex、HtmlAgilityPack或其他内容)并不重要,他必须以某种方式连接这两个字符串。即使OP决定使用HtmlAgilityPack(天生就是为了完成这类任务),他也必须在提取后连接字符串。你同意吗?也许有什么原因?在这个例子中使用正则表达式是完全正确的。他不做任何解析(提取不算数)。他确实在
之后提取文本,这与我想用正则表达式实现的一样,我的意思是正则表达式匹配本身应该给出结果(代码片段中包含的结果),而不是C#。我知道,这是不可能的。你有什么强烈的理由这样做吗?我真的很好奇。事实上,我正在写一个小爬虫,所以有些网站提供包含域名的绝对锚(例如www.xyz.com/p/q.aspx),有些网站提供相对锚(例如/p/q.aspx)。因此,如果是相对的,我想获得绝对超链接(即包含域名)。:)好的,你应该把C#和regex一起使用。裸正则表达式在这一点上会让你失望。事实上,我认为C#是最后的选择,无论如何,谢谢!
www.stackoverflow.com
The site is www.stackoverflow.com
Regex  regex  = new Regex(@"<a\shref=""(?<Url>.*?)""></a>")
String input  = ... // your sample markup
String result = regex.Match(input).Result("The site is ${Url}");