使用模式从字符串中提取数据

时间:2017-04-14 14:18:41

标签: c# html regex string vb.net

嗨,我有很长的字符串:

'bla bla bla... <img src="/uploads/photo.png" width="143" height="136" /> bla bla bla...'

我希望从这个长字符串中提取:图片标记 - 宽度,高度,当然还有路径...可能是这样的:

<img src="*" width="*" height="*" />

但我不知道如何获取“*”数据。你能建议我提取代码来提取图像路径(*)。可能在C#,VB或Java ......任何事情。谢谢!

2 个答案:

答案 0 :(得分:2)

不要使用正则表达式来解析html。使用html解析器insted。例如。你可以使用HtmlAgilityPack

var html = "bla... <img src=\"/uploads/photo.png\" width=\"143\" height=\"136\" /> bla...";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
var img = doc.DocumentNode.Element("img");
var src = img.Attributes["src"].Value;       // "/uploads/photo.png"
var width = img.Attributes["width"].Value;   // "143"
var height = img.Attributes["height"].Value; // "136"

AngleSharp

var parser = new HtmlParser();
var doc = parser.Parse(html);
var img = doc.QuerySelectorAll("img").FirstOrDefault();
var src = img.Attributes["src"].Value;       // "/uploads/photo.png"
var width = img.Attributes["width"].Value;   // "143"
var height = img.Attributes["height"].Value; // "136"

答案 1 :(得分:1)

这是一个使用Regex的简单JavaScript解决方案:

> s = 'bla bla bla... <img src="/uploads/photo.png" width="143" height="136" /> bla bla bla...'
> s.match(/<.*>/)[0]
'<img src="/uploads/photo.png" width="143" height="136" />'