我需要解析一个HTML字符串。我需要以这种格式从字符串中解析value
:
title="Profil">VALUE</a>
该值可以包含任意数量的字符,并且必须以</a>
结尾。
答案 0 :(得分:2)
使用HTML解析器和一些XPath可以非常简单,这可能是比正则表达式更好的选择。以下是使用HTML Agility Pack:
的示例HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(@"http://jsbin.com/onoho3");
HtmlNode node = doc.DocumentNode.SelectSingleNode("//a[@title='Profil']");
string myValue = node.InnerText;
当然,您也可以从字符串中加载文档:
HtmlDocument doc =new HtmlDocument();
doc.LoadHtml(html);
如果你确实需要一个正则表达式,一些可能性是:
title="Profil">.*?</a>
,title="Profil">[^<>]*</a>
或title="Profil">\w*</a>
,具体取决于您的需求。由于你没有任何特殊字符,所以正则表达式很简单。
答案 1 :(得分:1)
我建议使用HTML Agility Pack来处理HTML文档,可以在这里找到:
答案 2 :(得分:1)
如果你真的必须使用RegEx,你的文字必须以点(。)结尾,你可以使用它:
Regex valuePattern=new Regex( @"title=""Profil"">(.*\.)</a>");
string value = "";
Match match = valuePattern.Match(text);
if(match.Success)
value = match.Groups[1].Value;
对于解析HTML我会建议HtmlAgilityPack,但它会使许多常见的解析问题变得更加容易。