帮助使用正则表达式.需要提取“

本文关键字:HREF 提取 正则表达式 帮助 | 更新日期: 2023-09-27 17:50:43

我有<A HREF="f110111.ZIP">f110111 -是一个任意字符序列。我需要c# regex匹配表达式来提取以上所有内容。

E。G.输入

<A HREF="f110111.ZIP"><A HREF="qqq.ZIP"><A HREF="gygu.ZIP">

我想要列表:

  • f110111.ZIP
  • qqq.ZIP
  • gygu.ZIP

帮助使用正则表达式.需要提取“<A HREF”

您所需要的是html插件包/!这将允许您以一种简单的方式阅读HTML,并提供一种简单的方法来检索链接。

如果文件名中可以有多个点:

<A HREF="(^["]+?).zip

如果文件名中没有点(zip前面只有一个点),您可以使用更快的点:

<A HREF="(^[".]+)

c#示例:

Pattern pattern = Pattern.compile("<A HREF='"(^['"]+?).zip");
Matcher matcher = pattern.matcher(buffer);
while (matcher.find()) {
    // do something with: matcher.group(1)
}

NO NO!不要使用Regex解析HTML!

尝试XML解析器。或者XPath

试试这个:

/<a href="([^">]+.ZIP)/gi

我认为正则表达式是一种从给定文本中过滤文本的好方法。

这个正则表达式从给定的文本中获取文件,文件名和扩展名。

href="(?<File>(?<Filename>.*?)(?<Ext>'.'w{1,3}))"

上面的Regex期望一个存在于单词字符a-z a-z 0-9之间的1到3个字符的扩展。

c#代码示例:
string regex = "href='"(?<File>(?<Filename>.*?)(?<Ext>''.''w{1,3}))'"";
RegexOptions options = ((RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline) | RegexOptions.IgnoreCase);
Regex reg = new Regex(regex, options);