【问题标题】:Best way to get links from strings that contain them从包含它们的字符串中获取链接的最佳方法
【发布时间】:2012-05-14 23:17:18
【问题描述】:

我有一个链接列表,但我需要从字符串中过滤和提取正确的链接。

Extract 应以 mywebsite.com 开头,以 9-digitnumber.html 结尾 链接是字符串,提取成字符串

例子

http://blah.com?f=www.mywebsite.com/sdfsf/sdfsdf/sdfsdfsdf/123456789.html&sdfsdf/sf/sdfsd8sdfsdfsdf

等等……

从这里,正则表达式必须提取

mywebsite.com/sdfsf/sdfsdf/sdfsdfsdf/123456789.html

这应该与最后的数字匹配 '@"[0-9]{9}"。但我对正则表达式很陌生,正在尝试学习如何正确使用它

【问题讨论】:

  • 必须是正则表达式吗?数据的来源是什么?你有更多的例子吗?
  • 参数不应包含/。必须转义

标签: c# regex string hyperlink substring


【解决方案1】:

使用正则表达式解析 HTML 通常是个坏主意。对于您的特定示例,您可以使用:

(mywebsite.com/(.+?)\d{9})

但正如 Andrew 所说,使用正则表达式来做你想做的事并不是真正必要的。

【讨论】:

  • lnk=Regex.Match(val, @"mywebsite.com/(.+?)\d{9}").ToString();工作!
【解决方案2】:
/mywebsite\.com\/[a-zA-Z0-9\/]*[0-9]{9}\.html/

【讨论】:

  • 我试过String lnk=Regex.Match(val, @"/mysite\.com\/[a-zA-Z0-9\/]*[0-9]{9}\.html/").ToString();,但它不起作用
  • @Andrew 我对 C# 一无所知,但请尝试String lnk=Regex.Match(val, @"mywebsite\.com\/[a-zA-Z0-9\/]*[0-9]{9}\.html").ToString();
  • @Andrew 你也输入了mysite 而不是mywebsite,这可能是问题所在。
  • @Andrew val 的值是多少?
猜你喜欢
  • 2012-11-25
  • 2023-03-06
  • 1970-01-01
  • 2016-11-11
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2011-02-07
相关资源
最近更新 更多