如何从html元素字符串获取子字符串?

时间:2018-08-22 12:07:59

标签: c# asp.net .net

我在服务器端使用asp.net项目。

我有以下字符串:<img src="../../SpatialData/sometext/813.jpg" style="width:190px">

在某些时候,我需要从字符串中提取src:

../../SpatialData/sometext/813.jpg  

如何使用C#获取子字符串?

1 个答案:

答案 0 :(得分:0)

您可以使用一些正则表达式来解决此问题...

var test = "<img src=\"../../SpatialData/sometext/813.jpg\" style=\"width:190px\">";

var pattern = @"<img src=""([^\""]*)";

var result = Regex.Match(test, pattern).Groups[1].Value;

Console.WriteLine(result);

问题是...如果您要对具有多个图像标签的任何html文档执行该功能,则无法正常工作,无法全部获取...

test = "<img src=\"../../SpatialData/sometext/813.jpg\" style=\"width:190px\"><img src=\"../../SpatialData/sometext/814.jpg\" style=\"width:190px\">";

var matches = Regex.Matches(test, pattern)
                   .Cast<Match>()
                   .Select(x=>x.Groups[1].Value);

foreach (var m in matches)
{
    Console.WriteLine(m);
}

就像有人已经说过的那样,HTML敏捷包是一个值得研究的选项,我上面提供的解决方案非常严格,如果要对image标签上的属性进行不同的重新排序,则这些元素将不会包含在其中结果