1

我需要从给定的字符串中提取 $value 。

string text = "<h2 class="knownclass unknownclass1 unknownclass2" title="Example title>$Value </h2>"

使用代码-:

Match m2 = Regex.Match(text, @"<h2 class=""knownclass(.*)</h2>", RegexOptions.IgnoreCase);

它让我获得了完整的价值 -: unknownclass1 unknownclass2" title="Example title>$Value 。但我只需要 $value 部分。请告诉我。提前谢谢。

4

3 回答 3

1

假设字符串始终遵循这种格式,请考虑以下代码:

var index = text.IndexOf(">");
text.Substring(index + 1, text.IndexOf("<", index));
于 2012-10-12T01:24:25.333 回答
0

正如多次所说,使用正则表达式解析 HTML 或 XML 是不好的。忽略这一点,你捕捉的太多了。这是一个应该工作的替代正则表达式。

@"<h2 class=""knownclass[^""]*"">(.*)</h2>"
于 2012-10-12T01:18:39.123 回答
0

如果你的字符串总是相同的模式,你可以考虑这个:

string text = "<h2 class=\"knownclass unknownclass1 unknownclass2\" title=\"Example title>$Value </h2>";
string result = "";

Regex test = new Regex(@"\<.*?\>(.*?)\</h2\>");
MatchCollection matchlist = test.Matches(text);

if (matchlist.Count > 0)
{
    for (int i = 0; i < matchlist.Count; i++)
    {
        result = matchlist[i].Groups[1].ToString();
    }
}

但如果您使用 XML 文件或 HTML 文件,我建议您使用 XmlTextReader for XML 和 HtmlAgilityPack for HTML

http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader.aspx

http://htmlagilitypack.codeplex.com/

希望能帮助到你!

于 2012-10-13T12:59:56.040 回答