从格式constString1_Value_conString2解析值

时间:2011-01-09 18:34:29

标签: c# regex

我需要解析一个HTML字符串。我需要以这种格式从字符串中解析value

title="Profil">VALUE</a>

该值可以包含任意数量的字符,并且必须以</a>结尾。

3 个答案:

答案 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文档,可以在这里找到:

http://htmlagilitypack.codeplex.com/

答案 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,但它会使许多常见的解析问题变得更加容易。