我有<A HREF="f110111.ZIP">
和f110111
- 是一个任意的char序列。
我需要C#正则表达式匹配表达式来提取以上所有内容。
电子。 G。输入是
<A HREF="f110111.ZIP"><A HREF="qqq.ZIP"><A HREF="gygu.ZIP">
我想要清单:
答案 0 :(得分:3)
您需要的是htmlagility pack/!这将允许您以简单的方式阅读HTML并提供一种简单的方法来检索链接。
答案 1 :(得分:2)
如果文件名中可以有多个点:
<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)
}
答案 2 :(得分:0)
不,不! Do not use Regex to parse HTML!
尝试使用XML Parser。或者也许是XPath。
答案 3 :(得分:0)
试试这个:
/<a href="([^">]+.ZIP)/gi
答案 4 :(得分:0)
我认为正则表达式是一种从给定文本中过滤文本的好方法。
此正则表达式从给定文本中获取文件,文件名和扩展名。
href="(?<File>(?<Filename>.*?)(?<Ext>\.\w{1,3}))"
上面的正则表达式要求在字符字符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);